我正在编写一些教程,介绍使用Obj-C在iPhone编程中将自定义图像应用到UIButtons的方法。
我喜欢的一种方法是使用Interface Builder在XIB上放置UIButton(圆形矩形按钮),然后在XIB视图控制器的'viewDidLoad'方法中为按钮设置外观:
UIImage *ButtonImageNormal = [UIImage imageNamed:@"button_blue.png"];
UIImage *StretchableButtonImageNormal = [ButtonImageNormal stretchableImageWithLeftCapWidth:24 topCapHeight:24];
[self.Button setBackgroundImage:StretchableButtonImageNormal forState:UIControlStateNormal];
UIImage *ButtonImagePressed = [UIImage imageNamed:@"button_orange.png"];
UIImage *StretchableButtonImagePressed = [ButtonImagePressed stretchableImageWithLeftCapWidth:24 topCapHeight:24];
[self.Button setBackgroundImage:StretchableButtonImagePressed forState:UIControlStateHighlighted];
此方法的问题在于按钮不会丢失其“圆形矩形”背景,并且在按钮的侧面仍然可以看到“圆形矩形”按钮的白色透过自定义图像。 / p>
但是,如果我使用以下代码从头开始创建自定义按钮:
UIButton *CustomButton = [UIButton buttonWithType:UIButtonTypeCustom];
[CustomButton setFrame:CGRectMake(20, 100, 280, 45)];
[CustomButton.titleLabel setFont:[UIFont boldSystemFontOfSize:15]];
[CustomButton setTitle:@"Custom Button" forState:UIControlStateNormal];
[CustomButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[CustomButton setBackgroundImage:[UIImage imageNamed:@"button_blue.png"] forState:UIControlStateNormal];
[CustomButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[CustomButton setBackgroundImage:[UIImage imageNamed:@"button_orange.png"] forState:UIControlStateHighlighted];
[self.view addSubview:CustomButton];
没有这样的白色背景偷窥。
我真的想使用放置和蒙皮按钮的'Round Rect'方法,因为我想在Interface builder中查看它们的位置。有没有我需要使用的方法或我需要修改的属性来摆脱代码中'Round Rect'按钮的白色背景。
这是显示问题的图片:
答案 0 :(得分:4)
我找到了答案!
典型的是,你花了几个小时寻找手册才能在发布后找到它!
只需在Interface Builder中将按钮类型更改为“自定义”,无需额外代码!
答案 1 :(得分:0)
使按钮的默认颜色为“清晰颜色”,有趣的黑白对角线。