0

我的自定义 TableViewCell 在情节提要中定义了一个带有 frame(195, 16; 95,25) 的 imageView

在此处输入图像描述

但是当我尝试在运行时访问框架时,它会为所有出口返回 (0, 58, 0, 0),不仅是 imageView,还有 UILabels。

//CustomTableViewCell subclass
- (void)layoutSubviews{
    [super layoutSubviews];
    NSLog(@"%@", self.fiveStartForeground);
}

这来自控制台:

2012-09-27 18:57:46.563 200Pomodoros[11395:c07] <UIImageView: 0x7599640; frame = (0 58; 0 0); clipsToBounds = YES; opaque = NO; autoresize = TM+BM; layer = <CALayer: 0x759a0d0>>

但过了一会儿,它又恢复正常了:

2012-09-27 18:58:48.025 200Pomodoros[11395:c07] <UIImageView: 0x7599640; frame = (195.5 16; 94.5 25); clipsToBounds = YES; opaque = NO; autoresize = TM+BM; layer = <CALayer: 0x759a0d0>>

我需要更改图像框架(宽度)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

所以它看起来像是一个 5 开始评级的事情。但是我得到的框架是错误的。(0, 58, 0, 0)...

4

3 回答 3

1

这是适用于 iOS6 的愚蠢的自动布局...禁用它,你就可以开始了。

于 2012-10-02T02:25:25.233 回答
0

会不会是第一次 UI 没有完全设置好,所以你要求它的值太快了?

于 2012-09-27T11:02:35.697 回答
0

你可以使用喜欢..

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString *CellIdentifier = @"Cell";

    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {

    cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

}
    cell.YourImageView.frame = CGRectMake(195.5, 16, 94.5, 25); // Or what you want to set

我希望这对你有用..

于 2012-09-27T12:26:27.720 回答