0%

iOS开发 自定义按钮样式

通常,按钮有两种状态,普通和高亮,所以,我们需要先准备两张图片,这里是blueButton.png和whiteButton.png,拖进项目中。 Interface Builder并没有图形化实现该功能的方法,需要我们自己在代码中设置按钮的背景。 在ViewController.m的(void)viewDidLoad方法中:

    UIImage *normalImage=[[UIImage imageNamed:@"whiteButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(8, 10, 37, 28)];
    UIImage *pressedImage=[[UIImage imageNamed:@"blueButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(8, 10, 37, 28)];
    [button1 setBackgroundImage:normalImage forState:UIControlStateNormal];
    [button1 setBackgroundImage:pressedImage forState:UIControlStateHighlighted];
    [super viewDidLoad];

先读取图片文件,得到UIImage对象,再设置该对象可拉伸,UIEdgeInsetsMake的四个参数,分别为在图片中可拉伸区域上,左,下,右的x或y座标,左和右是x,上和下是y. 再给UIButton对象发送消息- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state,设置不同状态时显示的图片。