UITableViewがあり、ios6では、カスタムセルが画面の左側と右側に完全に伸びています。そのため、セルの左側にある私の正方形の画像は、電話の画面に対して固くなりました。
ただし、現在ios7では、左側に小さなギャップが表示されているため、画像は側面から離れており、セル内のテキストとわずかに重なっています。
これは、私が現在ios7で表示している他のアプリでも発生しているようです。すべて、左側とおそらく右側にもギャップがあります。
私のカスタムセルはInterfaceBuilderによると320のサイズに設定されています-ios7はこれを変更していませんか?
画像をcell.contentView
に追加すると、問題が修正されます。
[cell.contentView addSubview:imgView];
このようにして、separatorInset
プロパティを気にする必要さえありません。
iOS7はseparatorInset
プロパティを追加しました。
これをUITableViewController
に追加してみてください。
if ([self.tableView respondsToSelector:@selector(separatorInset)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
これは私にとって完璧に機能しています:
-(void)viewDidLayoutSubviews
{
if ([self.Video_TableVIEW respondsToSelector:@selector(setSeparatorInset:)]) {
[self.Video_TableVIEW setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.Video_TableVIEW respondsToSelector:@selector(setLayoutMargins:)]) {
[self.Video_TableVIEW setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
自分でセパレーターを作りたいです。テーブルビューの設定で苦労するよりも簡単に感じます。セパレータをnoneに設定し、セルをサブクラス化して、これをinitで実行するだけです。
-(id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if(self){
UIView *seperator = [[UIView alloc] init];
[seperator setBackgroundColor:[UIColor blackColor]];
seperator.frame = CGRectMake(0, self.bounds.size.height-1, self.bounds.size.width, 1);
[seperator setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth];
[self.contentView addSubview:seperator];
}
return self;
}
C#でXamarin/MonoTouchを使用している場合
tableView.SeparatorInset = UIEdgeInsets.Zero;
override func viewDidLoad() {
super.viewDidLoad()
tableView.cellLayoutMarginsFollowReadableWidth = false
}