当滑回太快时,UIButton的头衔神秘地消失了

时间:2014-10-16 03:55:46

标签: ios objective-c ios7 uibutton ios8

我在主屏幕上有一个UIButton,其标题应始终显示当前播放或待播放的音乐,如果播放列表为空,则应显示“音乐”,单击它将显示一首歌曲选择屏幕(当播放列表为空时)或播放列表屏幕(当播放列表不为空时),选择歌曲并转到播放列表屏幕,删除歌曲并滑回主屏幕后,UIButton的标题应显示“音乐”。

问题在于:当您向后滑动太快时,“音乐”文本将在瞬间显示然后消失,但是当您缓慢滑动时,“音乐”文本会保留。

我在this 25-second video录制了非常奇怪的行为。

以下是相关代码:

- (void)updateChooseMusicButton {
    if(self.songQueue.count == 0) {
        [self.chooseMusicButton setTitle:@"Music" forState:UIControlStateNormal];
    } 
}

- (void)setChooseMusicButton:(UIButton *)chooseMusicButton {
    _chooseMusicButton = chooseMusicButton;
    [_chooseMusicButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [_chooseMusicButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
}

2 个答案:

答案 0 :(得分:1)

找到解决方案:将按钮类型更改为“自定义”,它使用“系统”。当标题发生变化时,它还会处理闪烁。

答案 1 :(得分:0)

评论此代码并尝试运行..

- (void)setChooseMusicButton:(UIButton *)chooseMusicButton {
        _chooseMusicButton = chooseMusicButton;
        [_chooseMusicButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [_chooseMusicButton setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
}

并在viewWillAppear方法中调用updateChooseMusicButton函数。