【问题标题】:iOS Change Width of UIButton in UITableViewCelliOS 在 UITableViewCell 中更改 UIButton 的宽度
【发布时间】:2014-10-01 17:07:45
【问题描述】:

在我的自定义UITableViewCell 中,我有一个UIButton。对于特定的单元格(行)对象,我想更改按钮的width。我尝试了很多方法,但无法以任何方式更改按钮的大小。我没有在此单元格中使用AutoLayout,因为此按钮包含文本和图像,并且使用自动布局无法正确设置文本和图像之间的间距。

cellForRowAtIndexPath的代码,启动单元格并调用resize函数:

    } 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;

}

也许是他造成的问题....

你能指出我哪里出错了吗?长期以来一直在尝试解决此问题,但无法解决。谢谢。

【问题讨论】:

  • 您确定按钮在您执行此操作时已经存在吗?检查 self.button 是否为 != nil,也许你稍后创建按钮?对于帧操作,不需要特殊的额外调用。
  • if条件下直接在cellForRowAtIndexPath上更改按钮框架
  • 哦,是的,按钮是我的单元格对象中的一个成员,并且链接到 nib 文件中的按钮。 @property (nonatomic, strong) IBOutlet UIButton *button;
  • 你确定链接正确吗?
  • @GrzegorzKrukowski,请检查更新的问题

标签: ios objective-c uitableview uibutton width


【解决方案1】:

感谢@Greg 和@Grzegorz Krukowski。感谢您花费时间和精力帮助我。

不知道是什么问题,但我再次取消选中(已取消选中)来自 xib 的单元格的 AutoLayout 复选框。又试了一次。我的代码与问题中显示的相同。它开始按预期工作。

天哪,无法识别问题并解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    相关资源
    最近更新 更多