我有这样的自定义UITableViewCell:
@property (weak) IBOutlet UIDefaultServerButton * defaultButton;
@property (weak) IBOutlet UILabel * nameLabel;
@property (weak) IBOutlet UIRoundButton * deleteButton;
@property (weak) IBOutlet NSLayoutConstraint * buttonHeight;
@property (weak) IBOutlet NSLayoutConstraint * buttonWidth;
@property id <TableViewCellDelegate> delegate;
- (void) setDefaultServer: (BOOL) def;
- (void) animateLock;
- (void) animateTrash;
在cellForIndex中..我添加了LongPress识别器。长按时我调用animateLock函数。
- (void) animateLock
{
[self.deleteButton setImage:[UIImage imageNamed:@"lock"] forState:UIControlStateNormal];
self.deleteButton.hidden = NO;
self.deleteButton.backgroundColor = [UIColor redColor];
}
奇怪的是按钮变得可见并且图像已经改变,但是backgroundColor被忽略(无论我设置哪种颜色)。
为什么?
答案 0 :(得分:0)
您拍摄的图像可能与按钮尺寸相同。使图像变小或增加按钮的面积。
答案 1 :(得分:-1)
您使用的代码非常精细,但背景颜色的原因是不可见的,背景图像隐藏了UIButton的背景颜色。您可以通过注释
来确认这一点[self.deleteButton setImage:[UIImage imageNamed:@&#34; lock&#34;] forState:UIControlStateNormal];
然后按钮的背景将可见。
如果您可以详细说明为什么要设置按钮的红色背景,那么我会调查它。