Xcode学习笔记之动态添加View

移动开发 iOS
本文介绍的是Xcode学习笔记之动态添加View,详细介绍了动态添加View的实例,先来看内容详解。

Xcode学习笔记之动态添加View是本文要介绍的内容,前面说的都是用的Interface Builder来编辑.xib文件来给窗口添加各种件以及给控件绑定数据(IBOutlet)、关联事件响应函数(IBAction)。这章学习的是动态的添加view,不使用Interface Builder。这里用label和button示例:

找到新建工程XXXViewController.m的-(void)loadView方法,去掉注释并添加如下代码

  1. - (void)loadView {  
  2. //创建一个UIView 对象  
  3. UIView *view =  
  4. [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];  
  5. view.backgroundColor = [UIColor lightGrayColor];  
  6. //创建一个label view  
  7. CGRect frame = CGRectMake(10, 15, 300, 20);  
  8. UILabel *label = [[UILabel alloc] initWithFrame:frame];  
  9. label.textAlignment = UITextAlignmentCenter;  
  10. label.backgroundColor = [UIColor clearColor];  
  11. label.font = [UIFont fontWithName:@”Verdana” size:20];  
  12. label.text = @”label test”;  
  13. label.tag = 1000;  
  14. //创建一个按钮view  
  15. frame = CGRectMake(10, 30, 300, 50);  
  16. UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
  17. button.frame = frame;  
  18. [button setTitle:@”button test” forState:UIControlStateNormal];  
  19. button.backgroundColor = [UIColor clearColor];  
  20. button.tag = 2000

/*下面这个调用用C++的格式来看就是

  1. button->addTarget(this->action, @selector(buttonClicked:), UIControlEventTouchUpInside); 

中间的action:以及forControlEvent:实际上都是函数签名的一部分。@selector(buttonClicked:) 相当于函数指针(一个冒号表明函数有一个参数),这里指向的是buttonClicked函数

也就是下面定义的按钮响应函数*/

  1. [button addTarget:self action:@selector(buttonClicked:) forControlEvent:UIControlEventTouchUpInside];  
  2. [view addSubview:label];  
  3. [view addSubview:button];  
  4. self.view = view;  
  5. [label release];  

在这个文件中添加按钮响应函数

  1. -(IBAtion) buttonClicked:(id)sender {  
  2. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Action invoked”   
  3. message:@”button clicked”   
  4. delegate:self   
  5. cancelButtonTitle:”@ok”   
  6. otherButtonTitles:nil];  
  7. [alert show];  
  8. [alert release];  

label的矩形区域是CGRectMake(10, 15, 300, 20); 既左上角坐标是10,15宽度高度分别是300, 20.

button的矩形区域的左上角坐标是10, 30 ,它们有重叠的地方。

这里遮挡是后加到view里面去的遮挡先加进去的。所以button遮挡了label。可以通过

  1. [view exchangeSubviewAtIndex:1 withSubviewAtIndex:0]; 

来修改遮挡。我的理解是view按照控件加进去的顺给了个index,这个index从0开始递增。显示的时候index数值较大控件遮挡数值较小的。 上面这个函数交换了***加进去的两个控件(实际上只有这两个)的index。

小结:Xcode学习笔记之动态添加View的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-08-01 17:01:02

Xcode WindowBase View

2011-07-08 17:35:14

Xcode View

2011-08-10 14:00:22

XcodeUIWebView视频

2011-08-19 15:16:41

XCodeUserScripts脚本

2011-07-25 15:42:38

Xcode Vim

2011-07-20 14:31:56

XCode User Scrip 脚本

2011-08-30 16:43:46

MTK开发菜单

2011-08-01 15:57:58

2011-08-01 10:01:12

Xcode UIView 动画

2011-08-01 10:13:46

Xcode 视图 动画

2011-08-01 17:50:28

Xcode

2009-09-17 16:20:43

Linq to sql

2009-12-14 15:33:50

动态路由协议

2009-12-14 17:56:25

Linux操作系统

2011-08-11 16:31:08

XCode

2010-06-30 10:30:29

UML动态建模

2011-03-08 16:30:40

Proftpd

2011-03-08 16:30:24

Proftpd

2011-08-18 10:17:21

Xcode4Xcode

2011-08-22 11:35:07

Xcode
点赞
收藏

51CTO技术栈公众号