在自定义 TableViewCell 中动态更改 UILabel 框架
Posted
技术标签:
【中文标题】在自定义 TableViewCell 中动态更改 UILabel 框架【英文标题】:change UILabel frame dynamically in custom TableViewCell 【发布时间】:2012-03-07 14:47:24 【问题描述】:我编写了一个 UITableViewcell 的子类,它由各种 UILabel 组成,我在
中定义了 UIlabel 的样式(id)initWithStyle:(UITableViewCellStyle)stylereuseIdentifier:(NSString*)reuseIdentifier
和框架中的标签框
(void)layoutSubviews
现在,在为 UILabel 定义静态矩形之后,我想修改 UILabel 的矩形,并编写一个函数来修改框架标签,但调用此函数不会修改 UILabel 的框架。如果有人知道如何实现标签的动态框架,请分享。
【问题讨论】:
我对你问题的措辞有点困惑。你想改变矩形而不是框架?我不确定这是否有意义。 如果你只需要设置标签的x坐标,那么你可以看看我的github project's floating list 【参考方案1】:我通常实现这一点的方法是实现一个自定义 tableviewcell 并在我指定标签大小的子视图中实现我自己的 drawRect 方法,如下所示:
@implementation CompositeSubviewBasedRestaurantCellContentView
- (id)initWithFrame:(CGRect)frame cell:(RestaurantCell *)cell
if (self = [super initWithFrame:frame])
_cell = cell;
self.opaque = YES;
self.backgroundColor = _cell.backgroundColor;
return self;
- (void)drawRect:(CGRect)rect
_highlighted ? [[UIColor whiteColor] set] : [[UIColor blackColor] set];
[_cell.name drawAtPoint:CGPointMake(11.0, 22.0) withFont:[UIFont boldSystemFontOfSize:17.0]];
我认为 Apple 的示例非常好,例如 Table View Suite:
https://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007318
【讨论】:
以上是关于在自定义 TableViewCell 中动态更改 UILabel 框架的主要内容,如果未能解决你的问题,请参考以下文章
如何在自定义 tableViewCell 中初始化 UiPickerView?
无法在自定义 TableViewCell 中编辑 UITextView
TapGestures 在自定义 TableViewCell 中不起作用
iOS:为啥在自定义 TableViewCell 中写入此文本字段的文本似乎不可读
我在自定义 TableViewCell 中有一个 UICollectionView,但我无法自动调整 CollectionView 的大小