私はUITableViewを持っていますが、現在はその中に単一のセルがあります。私はいくつかのカスタム図面を行うためにUITableViewCellから継承するカスタムTableViewCellクラスを作成しました。テーブルの幅を希望するサイズに設定して、セルの幅を同じサイズに設定しようとしているので、テーブルの幅全体がいっぱいになります。問題は、セルの左右にいくつかのマージンがあるように見えますが、その理由はわかりません。iOS UITableViewが予期せず余白を追加する
Here's an example of the problem. 私はTableViewの背景をより明瞭にするようにしました。 TableViewは正しいサイズです。背景イメージはテーブルではなくセルに追加され、テーブルの全幅を占めるようにしてください。
私はTableViewを(画面の幅に合わせて)背景画像のサイズに合わせるようにしようとしましたが、それはそれほど効果がありません。私はむしろ、これらのマージンがどこから来ているのか、どのようにそれらを取り除くことができるのか把握したいと思います。
TableView自体は、Interface Builderで初期化されます。スタイルはGroupedに設定され、スクロールは無効になり、ビューモードはScale To Fillに設定されます。
ここであなたが明示的にセルの枠(サイズ)を設定し、そのスタイルを宣言するべきではないセルクラスのinitWithStyleメソッド
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
// Initialization code
_primaryLabel = [[UILabel alloc] init];
_primaryLabel.textAlignment = UITextAlignmentLeft;
_primaryLabel.font = [UIFont systemFontOfSize:18];
_primaryLabel.backgroundColor = [UIColor clearColor];
_detailLabel = [[UILabel alloc] init];
_detailLabel.textAlignment = UITextAlignmentLeft;
_detailLabel.font = [UIFont systemFontOfSize:12];
_detailLabel.backgroundColor = [UIColor clearColor];
_icon = [[UIImageView alloc] init];
[self.contentView addSubview:_primaryLabel];
[self.contentView addSubview:_detailLabel];
[self.contentView addSubview:_icon];
self.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UIImageView* whiteDisclosureView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 15, 13)];
[whiteDisclosureView setImage:[UIImage imageNamed:@"white_disclosure.png"]];
self.accessoryView = whiteDisclosureView;
UIImageView * background = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 305, 61)];
[background setImage:[UIImage imageNamed:@"button_silver.png"]];
[self setBackgroundView:background];
self.backgroundColor = [UIColor clearColor];
self.frame = self.contentView.frame = CGRectMake(0, 0, 305, 61);
}
return self;
}
それは問題でした。私が期待していたように、IBでいくつかの微調整をしています。ありがとう! – mayonaise