Поскольку я обнаружил AutoLayout
, я использую его везде, теперь я пытаюсь использовать его с tableHeaderView
.
Я сделал subclass
of UIView
добавленный все (метки и т.д.). Я хотел с их ограничениями, затем добавил этот CustomView
в UITableView
'tableHeaderView
.
Все работает отлично, за исключением того, что UITableView
всегда показывает выше CustomView
, выше. Я имею в виду CustomView
в < > UITableView
, чтобы его не видно!
Кажется, что независимо от того, что я делаю, height
UITableView
'tableHeaderView
всегда 0 (так же, как ширина, x и y).
Мой вопрос: возможно ли вообще выполнить этот без установки рамки вручную?
РЕДАКТИРОВАТЬ:
CustomView
'subview
, который я использую, имеет следующие ограничения:
_title = [[UILabel alloc]init];
_title.text = @"Title";
[self addSubview:_title];
[_title keep:[KeepTopInset rules:@[[KeepEqual must:5]]]]; // title has to stay at least 5 away from the supperview Top
[_title keep:[KeepRightInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepLeftInset rules:@[[KeepMin must:5]]]];
[_title keep:[KeepBottomInset rules:@[[KeepMin must:5]]]];
Я использую удобную библиотеку KeepLayout, потому что для записи ограничений вручную требуется навсегда и слишком много строк для одного ограничения, но методы самообучались.
И UITableView
имеет следующие ограничения:
_tableView = [[UITableView alloc]init];
_tableView.translatesAutoresizingMaskIntoConstraints = NO;
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.backgroundColor = [UIColor clearColor];
[self.view addSubview:_tableView];
[_tableView keep:[KeepTopInset rules:@[[KeepEqual must:0]]]];// These 4 constraints make the UITableView stays 0 away from the superview top left right and bottom.
[_tableView keep:[KeepLeftInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepRightInset rules:@[[KeepEqual must:0]]]];
[_tableView keep:[KeepBottomInset rules:@[[KeepEqual must:0]]]];
_detailsView = [[CustomView alloc]init];
_tableView.tableHeaderView = _detailsView;
Я не знаю, нужно ли мне устанавливать некоторые ограничения непосредственно на CustomView
, я думаю, что высота CustomView определяется ограничениями на UILabel
"title" в нем.
РЕДАКТИРОВАТЬ 2:. После очередного расследования кажется, что высота и ширина CustomView правильно рассчитаны, но верхняя часть CustomView все еще находится на том же уровне, что и верх UITableView, и они перемещаются вместе, когда я прокручиваю.