UITutViewCell中的UIButton设置背景颜色不起作用

时间:2014-05-30 09:35:01

标签: ios uitableview uibutton background-color

我有这样的自定义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被忽略(无论我设置哪种颜色)。

为什么?

2 个答案:

答案 0 :(得分:0)

您拍摄的图像可能与按钮尺寸相同。使图像变小或增加按钮的面积。

答案 1 :(得分:-1)

您使用的代码非常精细,但背景颜色的原因是不可见的,背景图像隐藏了UIButton的背景颜色。您可以通过注释

来确认这一点

[self.deleteButton setImage:[UIImage imageNamed:@&#34; lock&#34;] forState:UIControlStateNormal];

然后按钮的背景将可见。

如果您可以详细说明为什么要设置按钮的红色背景,那么我会调查它。