0

私のカスタムTableViewCellには、frame(195、16; 95,25)を使用してストーリーボードで定義されたimageViewがあります

ここに画像の説明を入力してください

しかし、実行時にフレームにアクセスしようとすると、imageViewだけでなく、UILabelsも含めて、すべてのアウトレットに対して(0、58、0、0)が返されます。

//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のばかげたAutoLayoutです...それを無効にすると、準備完了です。

于 2012-10-02T02:25:25.233 に答える
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 に答える
0

初めて UI が完全に設定されていないため、その値を要求するのが早すぎたのではないでしょうか?

于 2012-09-27T11:02:35.697 に答える