UIButton按钮

作者: 每日总结 | 来源:发表于2016-03-12 15:06 被阅读49次
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
//buttonWithType后面填的是button的样式
//UIButtonTypeSystem的时候如果给button添加前景图片只能显示出一个蓝色的轮廓;
//建议只要给UIButton设置自定义图片,就用Custom
//想要添加前景图片需要改成UIButtonTypeCustom;
button.frame = CGRectMake(100,100,100,100);
//设置标题
[button setTitle:@"登陆" forState:UIControlStateNormal];
  • 这里的State填的是当button这个状态的时候显示这样的标题;
    • Normal状态就是没有按的时候的状态
    • HighLighted状态就是按住不放的时候的状态
    • disable状态就是按钮失效或者不能按的时候的状态
    • 可以给不同的状态设定不同的图片,标题等
//取标题
NSString *title = [button titleForState:UIControlStateNormal];
//设置标题字体的颜色
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//背景图片
[button setBackgroundImage:[UIImage imageNamed:@"XXX.jpg"] forState:UIControlStateNormal];
//设置背景图片时上面的Type设为System就行了;

//设置前景图片
[button setImage:[UIImage imageNamed:@"XXX.jpg"] forState:UIControlStateNormal];
//设置前景图片时上面的Type要用Custem

//取图片
UIImage *backImg = [button backgroundImageForState:UIControlStateNormal];
UIImage *img = [button imageForState:UIControlStateNormal];
[self.window addSubview:button];
//button不用release,因为一般都是用便利构造器构建

//点击事件
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
//forControlEvents后填的是点击事件触发的时机;是一点下就触发,还是点下松手之后在触发

自定义button

想要自定义Button中的图片和标题的位置有两种方法
1.写一个UIButton的子类,并实现两个方法

//此方法改变的是标题的位置大小,返回标题的frame,
//此处contentRect就是button的frame,下同
- (CGRect)titleRectForContentRect:(CGRect)contentRect
//此方法改变的是图片的位置大小,返回图片的frame
- (CGRect)imageRectForContentRect:(CGRect)contentRect

2.设置UIButton相应的EdgeInsets属性

button.titleEdgeInsets = UIEdgeInsetsMake(top,left,bottom,right);
button.imageEdgeInsets = UIEdgeInsetsMake(top,left,bottom,right);
//这两个属性设置的是图片和标题距离边框的距离,当只有图片或标题时,
//设置的是距离button边框的距离,
//同时存在时,设置的图片的上左下是距button边框的距离,右边是距离title的距离;
//title上下右是距button边框的距离,左边是距离image的距离

相关文章

网友评论

    本文标题:UIButton按钮

    本文链接:https://www.haomeiwen.com/subject/dmktlttx.html