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的距离