У меня проблема с Xcode
раскадровкой и динамически показаны виды.Xcode раскадровка с динамическими видами
я 3 вертикально выровненных взгляды в моем раскадровки и каждый из них связаны друг с другом с верх-низ отношения с ограничениями
Однако во время выполнения Я хочу, чтобы скрыть 2-ю точку зрения и заменить его место с 3' (это tableview
), и чтобы заполнить как 2-е, так и 3-е места, я пытаюсь увеличить высоту tableview
. Однако я не могу добиться успеха. Я пробовал много вещей, но ближе всего, что я получаю, чтобы преобразовать 3-ий вид на 2-е место, но высота остается той же
Мой последний код в ниже
if (status) {
self.filterView.hidden = NO;
self.contentTable.frame = contentTableFrame;
} else {
self.filterView.hidden = YES;
CGFloat predictedHeight = self.contentTable.frame.size.height+(self.contentTableFrame.origin.y-self.filterView.frame.origin.y);
self.contentTable.transform = CGAffineTransformMakeTranslation(0, self.filterView.frame.origin.y-self.contentTable.frame.origin.y);
for (NSLayoutConstraint *constraint in self.contentTable.constraints) {
if (constraint.firstAttribute == NSLayoutAttributeHeight) {
constraint.constant = predictedHeight;
}
}
}
Вы также можете найти скриншот ограничения 3-го представления. Что я должен сделать, чтобы исправить это? Кто-нибудь знает об этом?
У меня есть другое решение этой проблемы. Но у меня есть еще одна проблема. Когда я выполнил нижнюю строку кода, мой третий вид переместился на место второго представления, но его высота остается такой же, как и в нижней части страницы, где это происходит, кажется, пустое пространство.
self.contentTable.transform = CGAffineTransformMakeTranslation(0, self.filterView.frame.origin.y-self.contentTable.frame.origin.y);
Для того, чтобы исправить это я пытался изменить его высоту (с .frame = CGRectMake (.....)) но не work.Then я пытался масштабировать 3-й вид (который является табличным представлением), и он преуспевает, но поскольку я масштабировал его, все ячейки внутри таблицы также масштабируются, а внешний вид таблицы нарушен. Поэтому я не смог найти решение этой проблемы. Казалось, это вызов.
Благодаря
создать IBOutlet для высоты ограничения 2 View и присвоить ему значение 0, если вы не хотите это для отображения. 3-й вид автоматически заполнит оставшуюся область. – Gandalf
, если вы не беспокоитесь о версии iOS для развертывания, вы можете использовать Stackview – Jaimish