在我的自定义UITableViewCell
中,我有一个UIButton
。对于特定的单元格(行)对象,我想更改按钮的width
。我尝试了很多方法,但不能以任何方式改变按钮的大小。我没有在此单元格中使用AutoLayout
,因为此按钮包含文本和图像,并且使用自动布局无法正确设置文本和图像之间的间距。
启动单元格并调用resize函数的cellForRowAtIndexPath
代码:
} else if ([text isEqualToString:@"Now"] ) { //(indexPath.row == 2) {
vcell.listDataSource = inList;
count = inList.count;
vcell.listsTableView.tag = 2;
[vcell reSizeButton];
自定义UITableViewCell中的方法:
-(void) reSizeButton {
CGRect btnFrame = self.button.frame;
btnFrame.size = CGSizeMake(157.0, btnFrame.size.height);
[self.button setFrame:btnFrame];
//[self.button sizeToFit];
//[self.button setNeedsDisplay];
[self.button setNeedsLayout];
return;
}
正确调用方法。因为它是在启动单元格属性期间调用的,所以我认为我不需要调用来重新加载单元格。
更新:
调用reSizeButton方法后,我调用了setText方法: -
-(void) setButtonText :(NSString *) text withCount:(int)count isExpanded:(BOOL)expanded {
titleText = text;
countNums = count;
cellExpanded = expanded;
[self updateButtonText];
return;
}
-(void) updateButtonText {
countNums = (int)[self.listDataSource count];
NSString *str = [NSString stringWithFormat:@"%@ (%d) ", titleText, countNums ];
[self.button.titleLabel setFont:[UIFont fontWithName:@"OpenSans" size:12.0] ];
[self.button setTitle:str forState:UIControlStateNormal];
//[self.button sizeToFit];
[self.button setNeedsLayout];
return;
}
也许他会引起这个问题......
你能指出我哪里错了吗?我很久以来都在尝试这个,但无法解决它。感谢。
答案 0 :(得分:0)
感谢@Greg和@Grzegorz Krukowski。感谢您花时间和精力帮助我。
不知道是什么问题,但是我再次取消选中(已经取消选中)来自xib的AutoLayout复选框。再试一次。我的代码与所示的相同。它开始按预期工作。
上帝,无法认识问题并解决了问题。