UIButton选择状态图像冻结自动旋转

时间:2014-08-12 15:28:13

标签: ios objective-c uitableview uibutton auto-rotation

我在UITableView的页脚中有一个UIButton。它有一个空复选框作为其未选中状态,一个复选框作为其选中状态。它在肖像中完美地工作,但如果视图旋转到横向,则按钮的图像在旋转时处于任何状态。旋转后按钮仍然可以正确发送消息,但图像不会改变。

self.theButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.theButton setImage:checkbox
                forState:UIControlStateNormal];
[self.theButton setImage:checkedBox
                forState:UIControlStateSelected];

此代码显示在我的视图控制器的tableView:viewForFooterInSection中。在链接到该按钮的操作中,我设置了self.theButton.selected = !self.theButton.selected;

发生了什么事?

2 个答案:

答案 0 :(得分:0)

您可以在按钮操作

中执行此操作
- (void)didTapCheckbox:(id)sender {
    UIButton *btn =(UIButton *)sender;
    if (btn.selected == YES) {
        [btn setSelected:NO];
    }
    else{
        [btn setSelected:YES];
    }
}

答案 1 :(得分:0)

代替您的代码只需执行此操作

if(self.theButton == nil){
    self.theButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [self.theButton setImage:checkbox
            forState:UIControlStateNormal];
    [self.theButton setImage:checkedBox
            forState:UIControlStateSelected];
}