一切問(wèn)題都是來(lái)自于需求 贞盯,先說(shuō)需求吧,設(shè)置一個(gè)按鈕氯哮,初始狀態(tài)是normal际跪,點(diǎn)擊后為選中狀態(tài)商佛,之后連續(xù)點(diǎn)擊還是選中狀態(tài);常規(guī)做法:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 100, 100, 100);
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
[button setBackgroundImage:[UIImage imageNamed:@"home_normal"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"home_highlight"] forState:UIControlStateSelected ];
[button setBackgroundImage:[UIImage imageNamed:@"home_highlight"] forState:UIControlStateHighlighted];
[button setTitle:@"點(diǎn)" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected];
button.selected = YES;
-(void)buttonAction:(UIButton *)btn{
btn.selected = YES;
NSLog(@"點(diǎn)擊了");
}
此時(shí)就會(huì)出現(xiàn)一個(gè)問(wèn)題姆打,就是處于點(diǎn)擊狀態(tài)的時(shí)候一直長(zhǎng)按良姆,你會(huì)發(fā)現(xiàn)圖片會(huì)改變成非選中狀態(tài),我也嘗試把高亮狀態(tài)圖片設(shè)置成選中狀態(tài)的圖片幔戏,但是結(jié)果還是沒(méi)有效果玛追,通過(guò)查找 ,找到了一個(gè)方法:
重寫(xiě)一個(gè) button類(lèi) 在 .m中重寫(xiě)這個(gè)方法:
//重寫(xiě)該方法可以去除長(zhǎng)按按鈕時(shí)出現(xiàn)的高亮效果
- (void)setHighlighted:(BOOL)highlighted
{
}
繼承這個(gè)類(lèi)的button 就不會(huì)再出現(xiàn)這個(gè)問(wèn)題了闲延。