【iOS基础控件 - 2 】 用代码创建控件,不用storyboard

在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是“固定死”的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上。

比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的。

因此,需要掌握如何用代码动态地添加控件 实际上,storyboard的本质就是根据图形界面描述转成相应的代码。

实践:


@implementation kViewController


 


- (void)viewDidLoad


{


    [super viewDidLoad];


//1.创建按钮


    UIButton *btn = [[UIButton alloc]init];  // [UIButton buttonWithType:UIButtonTypeCustom];


    //2.添加按钮


    [self.view addSubview:btn];


    //3.设置frame


    btn.frame = CGRectMake(50, 50, 100, 100);


    //4.设置背景色


    btn.backgroundColor = [UIColor blueColor];


    


    //通过文件名加载图片,凡是png图片都不用加拓展名


    UIImage *image = [UIImage imageNamed:@"m_6_634517026029062500_10397576"];


    [btn setBackgroundImage:image  forState:UIControlStateNormal];


    


    UIImage *highlignt = [UIImage imageNamed:@"m_14_634599171325781250_35568510"];


    [btn setBackgroundImage:highlignt forState:UIControlStateHighlighted];


    


    [btn setTitle:@"点我啊" forState:UIControlStateNormal];


    [btn setTitle:@"摸我干嘛" forState:UIControlStateHighlighted];


    


    //监听按钮点击


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


}


 


-(void)btnclick:(UIButton *) btn{

    NSLog(@"-----%@",btn);

}

 几行代码就可以代替在storyboard拖拽并设置控件属性同样的效果

 

 

 

    // 取得按钮的第一种做法是拖线,自动生成属性代码

    // 取得按钮的另外一种方法,如果两个view的tag相同,则按照优先级先找到先放进去的view

    //UIButton *UIbtn = (UIButton *)[self.view viewWithTag:xxx];//tag的值是在storyboard设置的

 

posted @ 2015-01-08 17:43  kengsir  阅读(592)  评论(0编辑  收藏  举报