当选择UIButton
时,如何让它选择全帧?这就是我的意思:
所以橙色是UIButtons
框架,蓝色是它被选中的时候。如何让蓝色填满整个画面? (所以你不会看到橙色。)
更新
答案 0 :(得分:2)
我假设橙色是UIButton
的 superview ,并且 superview 是你想要应用色调颜色的颜色至。如果是这种情况,那么我会在按钮上添加一个目标,以更改超级视图backgroundColor
以匹配按钮的tintColor
。这样的事情应该有效:
[myButton addTarget:self
action:@selector(setButtonSuperviewToTintColor:)
forControlEvents:UIControlEventTouchUpInside];
然后在控制器的其他地方添加:
- (void)setButtonSuperviewToTintColor:(UIButton *)sender {
sender.superview.backgroundColor = sender.tintColor;
}
如果超级视图不您要调整的内容,则创建一种方法,将UIButton
的背景颜色更改为其色调。< / p>
[myButton addTarget:self
action:@selector(setButtonBackgroundColorToTintColor:)
forControlEvents:UIControlEventTouchUpInside];
和其他地方:
- (void)setButtonBackgroundColorToTintColor:(UIButton *)sender {
sender.backgroundColor = sender.tintColor;
}
但是,如果你只想让它成为selected
颜色,那么就已经有了这种方法。不幸的是,它设计用于处理图像。但是,从图像中制作颜色很容易。所以,这应该适合你:
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context,
[[UIColor blueColor] CGColor]);
CGContextFillRect(context, rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[myButton setBackgroundImage:img forState:UIControlStateSelected];