UIBotton---UI里面很重要,且很基础的一个控件,主要是用来点击并触发事件,在这里,主要与UIImageView区分开来;
UIImageView主要用在显示图片上,而且只能显示图片,不能显示文字,当然UIImageView并不是绝对不能添加触发事件,但它用到的是UITapGestureRecognizer(手势识别,这里不详解);
而UIBotton既显示图片又显示文字(因为其内部默认有两个控件一个是UIImageView,一个UILabel,所以当用代码给按钮设置字体属性的时候利用UIButton的.TitleLabel返回这个UILabel设置。),而且可以被点击从而触发事件,UIBotton继承自UIControl,UIControl有AddTarget方法,所以UIButton拥有处理点击事件的能力。(凡是继承自UIControl的控件都能监听点击事件)
下面是一些关于UIBotton的用法代码:
//初始化方法:
//UIBotton的初始化方法一般不用”alloc“和”initwithframe“,因为UIButton有一个属性叫做buttonType,也就是按钮风格,这个属性是只读的,必须在初始化的时候设定,如果你不设定,他以后是没办法修改的,默认为UIButtonTypeCustom,不加背景图片根本看不见这个按钮,而他的Frame是可以初始化以后再修改的。
1.1.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeRoundedRect];
//“"这是在IOS6系统上的显示样式,而IOS7系统上时,则变成““ 白色,圆角,矩形
1.2.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeContactAdd];
//""这是在IOS6系统上的显示样式,而IOS7系统上时,则变成“”其实它是个矩形,其长度与宽度按自定义的frame为准,只是背景透明(UIButtonTypeInfoDask,UIButtonTypeDetailDisclosure,UIButtonTypeInfoLight 也是如此)
1.3.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeCustom]; //此样式用于需要自定义设置按钮在不同状态下(被点击前,被点击时,被点击后)的不同形式,例如:被点击前按钮是灰暗的,被点击时是高亮的,被点击后是中度亮度。自定义,无风格。
1.4.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeInfoDask]; //白色背景下使用的深色圆圈信息按钮
//""这是在IOS6系统上的显示样式,而IOS7系统上时,则变成“”
1.5.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeInfoLight]; //微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁
//""这是在IOS6系统上的显示样式,需要在背景颜色不是白色下才能更有效地显示出来,而IOS7系统上时,则变成““
1.6.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeDetailDisclosure]; //蓝色小箭头按钮,主要做详细说明用
//""这是在IOS6系统上的样式,在IOS7系统上则变成“”
button.frame = CGRectMake(90,100,140,50); //必须给button添加frame,否则显示不出来
//设置在某一状态下按钮标题,图像
[button setTitle:@"确定" forState:UIControlStateNormal]; // 这是常态下设置标题
UIControlStateHighlighted; //高亮(按住,还没有松手时)
UIControlStateDisabled; //禁用 此状态下先设置:Button.enabled = NO;
UIControlStateSelected; //选中 此状态下先设置:Button.selected = YES;
[button setTitleEdgeInsets:UIEdgeInsetsMake(5,5,5,5)]; //按钮的标题位置偏移,距离上,左,下,右的距离
[button setTitleColor:[UIColor redColor] forState:UIContorlStateNormal]; //设置不同状态下的标题的颜色
[button setTitleShadowColor:[UIColor grayColor] forState:UIContorlStateNormal]; //设置不同状态下的标题的阴影颜色
button.titleLabel.shadowoffset = CGSizeMake(5,5); //设置阴影偏移位置,向右向下为正,向左向上为负
[button setBackgroundImage:[UIimage imageNamed:@“text.jpg”] forState:UIContorlStateNormal]; //设置不同状态下按钮的背景颜色
[button setImage:[UIImage imageNamed:@“text.jpg”] forState:UIContorlStateNormal]; //设置按钮的某一状态下是图片(自己先细细体味一下setImage和setBackgroundImage有什么不同吧,setBackgroundImage会对图片进行拉伸,以button的frame为大小,而setImage则按原图大小显示)
//给button设置成圆形
button.layer.cornerRadius = 50; // 设置button的圆角半径,这样按钮就变成了园的
[button.layer masksToBounds]; // 将button上的图片一样变成圆形
button.layer.borderWidth = 3; // 添加边框
button.layer.borderColor = [UIColor orangeColor].CGColor; // 边框颜色 注意要加.CGColor属性
//对按钮的外观进行微调
button.adjustsImageWhenHighlighted = NO ; //默认情况下,在按钮被禁用时,图片会被画的颜色深一点,根据自己需求设置YES或NO
button.adjustsImageWhenDisabled = NO; //默认情况下,在按钮被禁用时,图片会被画的颜色淡一点,根据自己需求设置YES或NO
button.showsThouchWhenHighlighted = YES ; //此属性设置为YES时,可令按钮在按下时发光
[self.view addSubview:button]; //显示控件,不用刻意记都知道的吧?!
[button addTarget:self action:@selector(text:) forContorlEvents:UIContorlEventTouchUpInside]; //按钮的特点,就是点击并触发事件,此处事件方法为“text:”,触发方法是:点击并抬起(Xcode里面提供了几种触发方法,可以自行尝试)
-(void)text:(id)sender
{
UIButton *button = (UIButton *)sender;
//触发的事件代码
}
(可能学得比较浅,大家要是有补充可以留言,有问题的大家一起探讨下,可以私下联系:QQ790444804 微信:hgwchihuo
-------我是快乐的小尾巴`(*∩_∩*)′)