iOS开发之通过代码自定义一个控件

时间:2023-04-28 22:12:38

关于控件的继承关系(面试重点):

1)所有的控件都继承自UIView

2)能监听事件的都是先继承自UIControlUIControl再继承自UIView。比如UIButton

3)能整体滑动的都是继承自UIScrollViewUIScrollView再继承自UIView。比如UITableView

4UIWindow也是继承自UIView

首先,创建控件的代码要写在

- (void)viewDidLoad{

};

中,这个方法是在view被创建完毕后执行的方法。

1、创建按钮

UIButton *btn = [[UIButton alloc] init];

2、将按钮添加到view中

[self.view addSubview:btn];

3、设置frame(设置控件的位置和大小)

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

4、设置背景图片

(1)通过文件名加载图片(凡是PNG图片,都不用加拓展名)

UIImage *normal = [UIImage imageNamed:@"btn_01"];

(2)设置普通状态下的背景图片

[btn setBackgroundImage:normal forState:UIControlStateNormal];

(3)加载高亮的图片

UIImage *high = [UIImage imageNamed:@"btn_02"];

[btn setBackgroundImage:high forState:UIControlStateHighlighted];

5、设置文字

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

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

6、设置文字颜色

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

[btn setTitleColor:[UIColor blueColor] forState:

UIControlStateHighlighted];

7、监听按钮点击

[btn addTarget:self action:@selector(btnClick:) forControlEvents:

UIControlEventTouchUpInside];

【备注】*可以通过tag找到一个控件,例如:

UIButton *button = (UIButton *)[self.view viewWithTag:10];

由于[self.view viewWithTag:10]的返回值为UIView所以需要加上(UIButton *)强制转换为UIButton。

*对于监听按钮点击

[btn addTarget:self action:@selector(btnClick:) forControlEvents:

UIControlEventTouchUpInside];

addTarget的参数代表哪一个view,action代表这个view中的哪个方法。