Ben*_*enB 5 iphone objective-c uitableview
我有一个子类UITableViewCell.
我需要动态更改UILabel的框架.
这就是我所做的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"messageCell";
MessageCell *cell = (MessageCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.Content.Text = @"Content!";
[cell.Content setFrame:CGRectMake(0, 0, 10, 10)];
}
Run Code Online (Sandbox Code Playgroud)
UILabel的文本确实发生了变化,因此这不是IBOutlet问题.然而,框架保持与IB中定义的相同.
我以前做过这样的事情,所以我不确定这里出了什么问题......
谢谢你的帮助.
编辑:
我用
[self.tableView registerNib:[UINib nibWithNibName:@"MessageCell" bundle:nil]
forCellReuseIdentifier:@"MessageCell"];
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad中
在发布赏金后几天我找到了答案,我希望有一天能帮到某人...
我不是百分百肯定为什么,但我试图做的事情根本无法完成:
如果通过Interface Builder放置它,则无法更改对象的框架.
为了进行我想做的更改,我只是在我的子类中以"initWithCoder"编程方式创建了这些对象.
content = [[UILabel alloc] initWithFrame:CGRectMake(120, 100, 200, 50)];
content.opaque = NO;
content.numberOfLines = 0;
[self.contentView addSubview:content];
Run Code Online (Sandbox Code Playgroud)
然后我能够改变" - (void)layoutSubviews"中的帧(但基本上我想要的任何地方)
- (void)layoutSubviews
{
[super layoutSubviews];
[cell.Content setFrame:CGRectMake(0, 0, 10, 10)];
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3655 次 |
| 最近记录: |