重庆响应式网站平台,网站图片alt属性设置,阿勒泰地区住建设局网站,wordpress func#xff08;1#xff09;UIButton类继承自UIControl#xff0c;而UIControl继承自UIView#xff0c;因为UIView就是个矩形区域#xff0c;所以UIButton实例化的对象其实都是一个矩形#xff0c;虽然有各种圆角、增加联系人、信息按钮等等#xff0c;给它们加个背景它们就…1UIButton类继承自UIControl而UIControl继承自UIView因为UIView就是个矩形区域所以UIButton实例化的对象其实都是一个矩形虽然有各种圆角、增加联系人、信息按钮等等给它们加个背景它们就现形成矩形了而且它们有个frame属性这就是设置位置和矩形框的。 2UIButton创建一个按钮不用实例化也就是不用alloc和init而是直接调用内置的几个工厂方法即可这一点和UILabel *label1[[UILabel alloc]init]不同而且这些类型里面最常用的时Custom类型因为我们可以自定义图片以及图片和文字的位置。 3按钮有很多状态正常状态Normal、被点击时状态Highlighted等等所以可以分别对不同状态设置属性。 4其实按钮最重要的不是上面那些设置属性而是按钮关联的操作是什么即点击后发生什么这需要一个addtarget操作函数如果多个按钮用到同一个函数则需要tag属性来区别是哪个按钮。 5要自定义按钮一种方式是我们先自定义一个继承UIButton的类然后对这个类进行重写函数相当于定制最后用这个类去创建按钮这些按钮也就具有自定义的样式这种方法只针对自定义按钮类型有效。 1 - (void)viewDidLoad {2 //生成一个btn1对象不需要alloc和init而是直接用内置的工厂方法有很多可CMD点击查看3 UIButton *btn1[UIButton buttonWithType:UIButtonTypeRoundedRect];4 //设置位置和宽高5 btn1.frameCGRectMake(30, 30, 300, 30);6 //设置按钮的文字状态有好几种常用的时Normal和Highlighted点击时状态可CMD点击查看7 [btn1 setTitle:点我啊 forState:UIControlStateNormal];8 //设置点击时的文本9 [btn1 setTitle:我被点了 forState:UIControlStateHighlighted];
10 //设置文字颜色
11 [btn1 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
12 [btn1 setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
13 //设置点击时按钮背景颜色呃完全不起作用即无效果
14 [btn1 setTintColor:[UIColor purpleColor]];
15 //点击时按钮发光就是在按钮中间发亮光这个有效果
16 btn1.showsTouchWhenHighlightedYES;
17 //设置tag标签唯一标记用可用于分辨是哪个按钮控件
18 btn1.tag1;
19 //设置背景颜色
20 btn1.backgroundColor[UIColor redColor];
21 //现在高版本的iOS里这个方法会让人抓狂因为我们发现不设置背景时圆角按钮没有边框所以上面设置frame其实意义不大
22 //设置了背景或者图片后背景是矩形说好的圆角呢坑爹呢
23 //所以现在大多数开发都是用UIButtonTypeCustom而不是UIButtonTypeRoundedRect
24
25 //最重要的添加触发事件用户交互
26 //self是指调用哪个对象的方法
27 //btnClick:是调用的方法btnClick和btnClick:不一样后者表示有参数
28 //UIControlEventTouchUpInside是触发事件有很多可以CMD点击查看
29 //这里三个参数都可以随意更换比如新建一个类Hi在类里定义一个方法-(void)report;
30 //然后在此文件引入Hi.h头文件在这里实例化一个对象hi1然后就可以用hi1代替self,用report代替btnClick
31 //意思就是点击后调用的是hi1对象里面的report方法
32 [btn1 addTarget:self action:selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
33
34 //再增加一个按钮
35 UIButton *btn2[UIButton buttonWithType:UIButtonTypeContactAdd];
36 btn2.frameCGRectMake(30, 80, 300, 30);
37 //这个增加联系人按钮其实也是一个矩形和上面的一样都是继承自UIControl而后者又继承自UIView所以是矩形
38 //虽然按钮就一点点大但点击整个矩形区域都是相当于点击按钮
39 btn2.backgroundColor[UIColor greenColor];
40 //设置标签
41 btn2.tag2;
42 //增加事件和btn1调用同一个方法但问题是我们如果需要区分是哪个按钮的话就需要用到tag并且把控件作为参数传递给btnClick
43 [btn2 addTarget:self action:selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
44
45 //再增加一个最常用的Custom按钮其他按钮自己尝试
46 UIButton *btn3[UIButton buttonWithType:UIButtonTypeCustom];
47 btn3.frameCGRectMake(30 , 150 , 300, 90);
48 btn3.backgroundColor[UIColor redColor];
49 btn3.tag3;
50 [btn3 addTarget:self action:selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
51 //设置图片背景被点击时变暗但没有图片背景时则无效果
52 btn3.adjustsImageWhenHighlightedYES;
53 //所以增加图片方式之一是增加背景图片这个图片如小会被放大充满整个背景
54 [btn3 setBackgroundImage:[UIImage imageNamed:logo.png] forState:UIControlStateNormal];
55 //还有一种增加图片的方式是在按钮上面加而不是背景这种方式不会缩放图片而且会居中
56 [btn3 setImage:[UIImage imageNamed:logo.png] forState:UIControlStateNormal];
57 //设置按钮文字增加的文字会和setImage图片一并居中图片在左边文字紧随其后
58 [btn3 setTitle:自定义按钮 forState:UIControlStateNormal];
59 //如果需要重新排版这个图片和按钮文字的位置则需要重写UIButton类里面的两个函数点击UIButton可查看
60 //- (CGRect)titleRectForContentRect:(CGRect)contentRect;文字相对于按钮的位置
61 //- (CGRect)imageRectForContentRect:(CGRect)contentRect;图片相对于按钮的位置
62 //第一步可以重新定义一个UIButton类叫myButton在.m里重写如下函数
63 //- (CGRect)titleRectForContentRect:(CGRect)contentRect{
64 // return CGRectMake(50, 25, 100, 40);
65 //}
66 //- (CGRect)imageRectForContentRect:(CGRect)contentRect{
67 // return CGRectMake(150, 25, 40, 40);
68 //}
69 //第二步在这个文件中引入myButton.h头文件然后实例化btn3的时候用myButton而不用原始的UIButton
70 //myButton相当于稍微定制了一下原生的UIButton所以前者实例出得对象也就具有定制效果
71 //这种方式仅对UIButtonTypeCustom有效其他无效
72
73 //把三个按钮显示出来
74 [self.view addSubview:btn1];
75 [self.view addSubview:btn2];
76 [self.view addSubview:btn3];
77 [super viewDidLoad];
78 // Do any additional setup after loading the view, typically from a nib.
79 }
80 //增加一个参数即由原先的-(void)btnClick{}变成如下
81 //因为我们知道这里都是按钮对象所以可以用(UIButton *)sender但通常我们用通用指针id
82 -(void)btnClick:(id)sender{
83 //把传递过来的控件参数转化成按钮
84 UIButton *btn(UIButton *)sender;
85 //把btn.tag转化成整型
86 NSLog(OMG,it is %i,(int)btn.tag);
87 } 转载于:https://www.cnblogs.com/crazygeek/p/5487021.html