我遇到了UIButton的奇怪问题。我为状态UIControlStateHighlighted设置了它的背景图像,但背景图像没有改变我点击它。目标/选择器仍然被调用,但是,如果我删除目标/选择器,那么它可以正常工作。
这是我的代码:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(currentXPos, 0, minWidth + additionalSpacing, self.bounds.size.height)];
[button setBackgroundImage:[UIImage imageNamed:@"cellBackgroud.png"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"cellBackgroudSelected.png"] forState:UIControlStateHighlighted];
[button setTitle:text forState:UIControlStateNormal];
[button setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];
[[button titleLabel] setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14]];
[button setTag:i];
[button addTarget:delegate action:@selector(topCellPressed:) forControlEvents:UIControlStateHighlighted];
[self addSubview:button];
我已经坚持了一段时间,所以任何帮助都会受到赞赏...谢谢!
答案 0 :(得分:1)
您使用错误的类型作为目标指定。您想要一个UIControlEvent
而不是UIControlState
。你正在设置按钮的东西当前是垃圾,因为控制状态是一个非常不同的位掩码来控制事件。
名义上要按下UIControlEventTouchUpInside
[button addTarget:delegate action:@selector(topCellPressed:) forControlEvents:UIControlEventTouchUpInside];
我很惊讶编译器没有给你一个警告。