iOS Table 查看 XIB 布局问题
iOS Table View XIB layout issue
我已经在 Xcode 中声明了 x3 UITableView
XIB interface builder:
然后我运行电流UIViewController
在iPad空气iOS模拟器:
如您所见,第一个 UITableView
视图的顶部单元格与第二个/第三个不同。
为什么会这样?
如何让这些UITableView
'看起来一样?
好的,我知道了。重写 init 方法,如下所示:
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
return self;
}
您必须自己处理插图,因为此自动 属性 只能处理层次结构中 第一个 子视图的插图。
对于插图问题,创建这些属性:
@property (weak, nonatomic) IBOutlet UITableView *tableViewLeft;
@property (weak, nonatomic) IBOutlet UITableView *tableViewMiddle;
@property (weak, nonatomic) IBOutlet UITableView *tableViewRight;
然后尝试以下操作:
- (void)viewDidLayoutSubviews {
UIEdgeInsets inset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0.0, 0.0, 0.0);
self.tableViewLeft.contentInset = inset;
self.tableViewMiddle.contentInset = inset;
self.tableViewRight.contentInset = inset;
}
我已经在 Xcode 中声明了 x3 UITableView
XIB interface builder:
然后我运行电流UIViewController
在iPad空气iOS模拟器:
如您所见,第一个 UITableView
视图的顶部单元格与第二个/第三个不同。
为什么会这样?
如何让这些UITableView
'看起来一样?
好的,我知道了。重写 init 方法,如下所示:
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.automaticallyAdjustsScrollViewInsets = NO;
}
return self;
}
您必须自己处理插图,因为此自动 属性 只能处理层次结构中 第一个 子视图的插图。
对于插图问题,创建这些属性:
@property (weak, nonatomic) IBOutlet UITableView *tableViewLeft;
@property (weak, nonatomic) IBOutlet UITableView *tableViewMiddle;
@property (weak, nonatomic) IBOutlet UITableView *tableViewRight;
然后尝试以下操作:
- (void)viewDidLayoutSubviews {
UIEdgeInsets inset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0.0, 0.0, 0.0);
self.tableViewLeft.contentInset = inset;
self.tableViewMiddle.contentInset = inset;
self.tableViewRight.contentInset = inset;
}