0

UITableViewController セル内の画像の位置を変更しようとしています。これが私のコードです:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIImageView *cellImage = cell.imageView;
    CGRect frame = cellImage.frame;
    frame.origin.x = 4;
    frame.origin.y = 2;
    cell.backgroundColor = [UIColor lightGrayColor];
}

これまでのところ、機能しているのは背景色だけです。助言がありますか?ここに私が今持っているもののスクリーンショットがあります:

ここに画像の説明を入力

現在、画像は中央に配置されていますが、セルの左上に少し近づけたいと思っていました。

4

4 に答える 4

1

UI が IB で作成され、自動レイアウトがオンになっている場合は、画像ビューの制約を更新する必要があります。自動レイアウトによって強制的に変更が行われるため、フレームの変更について心配する必要さえありません。このガイドは技術的には OS X 向けですが、ほとんどは同じです: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Articles/Introduction.html#//apple_ref/doc/uid /TP40010853 2012 年の WWDC ビデオもあり、自動レイアウトに慣れていない場合に概要を説明しています。

于 2013-06-27T16:52:16.827 に答える
0

フレームと背景色を変更しましたが、セルの実際のフレームを設定するのを忘れていました。フレームを変更した後、これを追加する必要があります。

cellImage.frame = frame;

また

cell.imageView.frame = frame;

実装で機能しない理由は、画像ビューのフレームを取得して別のプロパティに設定しているためです (frameこの場合)。次に、セルの原点ではなく、そのプロパティの原点を変更しています。

セルで直接呼び出しを行っているためcell.backgroundColor(セルのセッターを呼び出しているため)、背景色が機能しました。したがって、ビューのフレームで同じことを行う必要があります。

于 2013-06-27T16:32:29.863 に答える