我遇到过同样的问题。直接我做不到,所以我使用了如下一些棘手的逻辑并为我工作。我只是给出提示,希望这个逻辑会对你有所帮助。
我有使用drawRect方法绘制下划线的按钮,所以在某些匹配情况下我需要删除它,所以我喜欢这样:
注意:“isRemoveUnderLine”是我的自定义按钮类中的 Bool 属性
if ([array count] == 2) {
myButton.isRemoveUnderLine = YES;
[myButton setNeedsDisplay]; //it will update your button context and call drawRect method again...
}
//drawRect方法代码如下:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
if(_isRemoveUnderLine)
CGContextSetStrokeColorWithColor(context, [UIColor clearColor].CGColor);
else
CGContextSetStrokeColorWithColor(context, self.currentTitleColor.CGColor);
...
...
}
希望你能得到一些提示来修正你的逻辑!!!