UIEdgeInsetsMake
セルの背景をグラデーションに設定するために使用しようとしています。動作させるために複数のことを試しましたが、何を使用しても常に問題があります。
私は単に2つの静的セルを持っており、そこでそれらを設定しようとしてbackgroundView
いwillDisplayCell:
ます. 上部、下部、および中央のセルに個別の画像がありますが、2 つのセルがあるため、上部と下部のみが必要です。これらはそれらの画像です:
上
下
それらの間に2ポイントの線がないように、下の線の上に行がありません。一番下の高さを少し調整して補正しました(1pt高く)。これらの画像は 44x44pt です。
私はそれらを次のように設定しました:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UIImageView *topCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = topCellBackgroundImageView;
}
// If it's the last row
else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
UIImageView *bottomCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = bottomCellBackgroundImageView;
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
これはうまくいきません。下の画像でわかるように、一番上のセルには、セル全体に 1pt の白い「バンド」があり、かなり見栄えが悪いです。なぜそこにあるのかわかりません。
topCellBackgroundView
そのため、 を のエッジ インセットを持つように変更しました。これ(5.0, 5.0, 0.0, 5.0)
は、上部のみが丸められているため、bottom
プロパティを考慮する必要がないためです (フラットです)。それは完璧に機能します!セルを選択する場合を除き、一番下のセルがそのセル全体を占めることはなくなりました。
私はどうしたらいいですか?何をしてもうまくいかないようです。また、0.0 の代わりに 1.0 を試してみました。また、-1.0 も役に立ちませんでした。