程序开发-uiview常用属性和方法">iPone应用程序开发 UIView常用属性和方法

常用属性

alpha 视图的透明度0.0f - 1.0f backgroundColor 视图的背景颜色 subviews 子视图的集合 hidden 视图是否隐藏 tag 视图的唯一标示符,是一个整形数据 superview 视图的父视图 multipleTouchEnabled 是否开启多点触控 userInteractionEnable 是否响应触摸事件

常用方法

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<code class="hljs" objectivec="">- (void)removeFromSuperview;

//从父视图中删除当前视图

-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

//从指定的索引位置插入视图

- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

//根据制定视图的索引位置交换视图

- (void)addSubview:(UIView *)view;

//在当前视图层的上面添加一个新视图,这个方法会对参数视图的引用加1

- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;

//在指定视图下方添加一个视图

- (void)insertSubview:(UIView *)view aboveSubVIew:(UIView *)siblingSubview;

//在指定的上方添加一个视图

- (void)bringSubviewToFront:(UIView *)view;

//将参数指定的 view 移动到视图的最前面

- (void)sendSubviewToBack:(UIView * )view;

//将参数指定的 view 移动到视图的最后面

- (UIView *)viewWithTag:(NSInteger)tag;

//根据tag 属性获取已存在的 UIView 对象

</code>

具体实现

?

1

2

3

4

<code>实现的方法:

1.可以纯代码实现,主要使用手动写代码的方式实现,不使用Xcode中的自动加载主视图的方法,我们手动管理视图,不用 ViewController 来管理.

2. 可以使用Xcode提供的UIView和UIVindow来实现

</code>

实现方法

第一步:
首先,删掉工程中的 ViewController.h,ViewController.m,Main.storyboard 和 LaunchScre.xil 文件,我们自己手动写加载窗口和视图。
第二步:
  把工程的 Main interface 中的 Main 删除,并把 Launch Screen File 文件中的LaunchScreen 也删掉.
接下来,我们在 AppDelegate.m 文件中写代码,加载主视图和窗口

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

<code class="hljs" objectivec="">  

#import AppDelegate.h

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [UIColor grayColor];

UIView *bgView = [[UIView alloc] initWithFrame:self.window.bounds];

bgView.backgroundColor = [UIColor orangeColor];

[self.window addSubview:bgView];

UIView *greenView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 280, 160)];

greenView.tag = 100;//这个 tag 是视图的唯一标示,实际只是一个整数值

greenView.backgroundColor = [UIColor greenColor];

//bgView 和 greenView 建立了一种关系,即父子关系  bgView 叫做父视图, greenView 叫子视图

//    [bgView addSubview:greenView];

greenView.superview.backgroundColor = [UIColor redColor];

UIView *blueView = [[UIView alloc] initWithFrame:CGRectMake(20, 190,280, 160)];

blueView.tag = 101;

blueView.backgroundColor = [UIColor blueColor];

//    [bgView addSubview:blueView];

//    //通过子视图改变父视图的背景颜色

blueView.superview.backgroundColor = [UIColor lightGrayColor];

[bgView addSubview:blueView];

[bgView addSubview:greenView];

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, 240, 40)];

[btn setTitle:@别点我 forState:UIControlStateNormal];

[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

[btn addTarget:self action:@selector(onButton) forControlEvents:UIControlEventTouchUpInside];

btn.backgroundColor = [UIColor lightGrayColor];

[bgView addSubview:btn];

//    greenView.userInteractionEnabled = NO;

//    [greenView addSubview:btn];

UIView *gView = [bgView viewWithTag:100];

gView.backgroundColor = [UIColor purpleColor];

UIView *bView = [bgView viewWithTag:101];

bView.backgroundColor = [UIColor redColor];

[self.window makeKeyAndVisible];

return YES;

}

- (void)onButton

{

NSLog(@%s,__func__);

}

@end

</code>

运行结果如下:

结果分析:
这里的视图是有层次的,最底层的是橙色的视图 bgView,就是父视图,其他的都是子视图,其它视图按照代码中的位置和大小放在 bgView 上.父视图 baVIew 可以通过子视图来改变其属性.

iPone应用开发 UIView 常用属性和方法相关推荐

  1. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  2. JS lodash库在开发中常用到的方法

    目录 一.摘要 二.常用方法 一.摘要 lodash是JS一个开箱即用的库函数,里面对于在日常开发中常用到的方法都是已经封装好的,使用起来非常方便,本篇记录了在日常开发过程总经常用的方法,就大概记录一 ...

  3. JavaScript之DOM常用属性及方法详解

    一.什么是DOM? DOM:文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口. W3C 已经定义了 ...

  4. selenium提取数据之driver对象的常用属性和方法

    selenium提取数据之driver对象的常用属性和方法 在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法 driver.page_source 当前标 ...

  5. 尚硅谷学习笔记-节点的常用属性和方法

    节点的常用属性和方法[图片在末尾] 方法: 通过具体的元素节点调用 getElementsByTagName() 方法,获取当前节点的指定标签名孩子节点 appendChild( oChildNode ...

  6. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  7. ExtJs window(一)使用API以及window常用属性和方法

    1.使用API xtype:组件的别名 Hierarchy 层次结构 Inherited mixins 混入的类 Requires 该组件需要使用的类 configs:组件的配置信息 properti ...

  8. vb中WindowsMediaPlayer的常用属性和方法

    vb中WindowsMediaPlayer的常用属性和方法 enableContextMenu:Boolean 显示/不显示播放位置的右键菜单 fullScreen:boolean 全屏显示 stre ...

  9. C# 进程管理 Process的常用属性与方法

    进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他 ...

最新文章

  1. 源码-0205-02--聊天布局
  2. 认识RESTful设计风格
  3. 由自动装箱和拆箱引发我看Integer源码
  4. Vysor:安卓手机放到电脑上用
  5. OO设计原则总结[转载]
  6. 弹性地基梁板法计算原理_地基下沉别慌张!沉着冷静用对地基加固法
  7. mysqlreport查看mysql性能
  8. 电路板上的插头怎么拔下来_中国连城 | 接插件在电路板上的作用及它的种类介绍...
  9. 使用 CSS 用户选择控制选择
  10. python元组求和_Python 列表和元组 - 学习笔记(持续更新)
  11. typedef四用途与两陷阱
  12. (51)Verilog HDL上升沿检测
  13. html+javascript实现数字微调,点击一下增加1或减去1
  14. 搭建无线打印服务器,用旧电脑轻松架设无线网络打印服务器
  15. 守望先锋归来(守望先锋2)游戏笔记
  16. MFC使用SaveAs函数保存Excel文件时,弹出“文件已存在”问题
  17. 微信朋友圈会在服务器上保留多久,微信朋友圈有没有草稿?可以存多久?
  18. 怎么用计算机进行气象预报,中央气象台进行天气预报,先用计算机解出描述天气演变的方程组,“算”出来未来天 - 问答库...
  19. 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
  20. python计算整数区间[m、n所有整数之和_Python:就区间正整数内所有素数之和

热门文章

  1. mysql登录时报socket找不到终极解决方案
  2. python画结节图像_天池医疗AI大赛[第一季]:肺部结节U-Net图像分割
  3. java版扫雷游戏源代码
  4. 【1049】晶晶赴约会
  5. 华北科技学院计算机专业录取分数线,2018华北科技学院在各省录取分数线【最新公布】...
  6. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(7)- 从SD/eMMC启动
  7. 实用的CAM350快捷键命令
  8. 简单三步轻松建站,全新小白也能搭建企业网站
  9. 如何创建微信公众号, 微网站 以及发多图文消息
  10. L型、Π型、T型、多L连接型 匹配网络特性比较