Настройка размера ContentView с помощью SnapKit ⇐ IOS
Настройка размера ContentView с помощью SnapKit
При использовании Auto Layout мой код будет выглядеть так:
let SafeAreaLayoutGuide = contentView.safeAreaLayoutGuide let BottomAnchor = userImage.bottomAnchor.constraint (equalTo: SafeAreaLayoutGuide.bottomAnchor, константа: -16.0) BottomAnchor.priority = .required - 1 NSLayoutConstraint.activate([ userImage.topAnchor.constraint(equalTo:safeAreaLayoutGuide.topAnchor, константа: 16), userImage.leadingAnchor.constraint(equalTo:safeAreaLayoutGuide.leadingAnchor , константа: 16), userImage.widthAnchor.constraint(equalToConstant: 90), userImage.heightAnchor.constraint(equalToConstant: 90), userName.topAnchor.constraint(equalTo:safeAreaLayoutGuide.topAnchor, константа: 16), userName.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), userName.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), userStatus.topAnchor.constraint(equalTo: userName.bottomAnchor, константа: 16), userStatus.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), userStatus.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), textField.topAnchor.constraint(equalTo: userName.bottomAnchor, константа: 48), textField.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), textField.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), textField.heightAnchor.constraint(equalToConstant: 32), showStatusButton.topAnchor.constraint(equalTo: textField.bottomAnchor, константа: 16), showStatusButton.leadingAnchor.constraint(equalTo:safeAreaLayoutGuide.leadingAnchor, константа: 16), showStatusButton.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), дноЯкорь ]) Ограничение bottomAnchor позволяет contentView подстраиваться под размер содержимого. Теперь я пытаюсь создать тот же пользовательский интерфейс, но теперь использую SnapKit. Вот ограничения для всех объектов в contentView:
userImage.snp.makeConstraints { make in make.top.equalTo(self.safeAreaInsets.top).offset(16) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.height.width.equalTo(userImage.layer.cornerRadius * 2) } userName.snp.makeConstraints { make in make.top.equalTo(self.safeAreaInsets.top).offset(16) make.left.equalTo(userImage.snp.right).offset(16) make.right.equalTo(self.safeAreaInsets.right).inset(-16) } userStatus.snp.makeConstraints { сделать в make.top.equalTo(userName.snp.bottom).offset(16) make.left.equalTo(userImage.snp.right).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) } textField.snp.makeConstraints { сделать в make.top.equalTo(userStatus.snp.bottom).offset(40) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) make.height.equalTo(32) } showStatusButton.snp.makeConstraints { make in make.top.equalTo(textField.snp.bottom).offset(16) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) } Я не могу понять, чем заменить ограничение bottomAnchor. Как мне настроить contentView на то, что у меня есть? (или, по сути, расположите его относительно нижней привязки showStatusButton.
На всякий случай, весь проект здесь, а файл, который я меняю, — ProfileHeadevView.swift
При использовании Auto Layout мой код будет выглядеть так:
let SafeAreaLayoutGuide = contentView.safeAreaLayoutGuide let BottomAnchor = userImage.bottomAnchor.constraint (equalTo: SafeAreaLayoutGuide.bottomAnchor, константа: -16.0) BottomAnchor.priority = .required - 1 NSLayoutConstraint.activate([ userImage.topAnchor.constraint(equalTo:safeAreaLayoutGuide.topAnchor, константа: 16), userImage.leadingAnchor.constraint(equalTo:safeAreaLayoutGuide.leadingAnchor , константа: 16), userImage.widthAnchor.constraint(equalToConstant: 90), userImage.heightAnchor.constraint(equalToConstant: 90), userName.topAnchor.constraint(equalTo:safeAreaLayoutGuide.topAnchor, константа: 16), userName.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), userName.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), userStatus.topAnchor.constraint(equalTo: userName.bottomAnchor, константа: 16), userStatus.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), userStatus.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), textField.topAnchor.constraint(equalTo: userName.bottomAnchor, константа: 48), textField.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, константа: 16), textField.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), textField.heightAnchor.constraint(equalToConstant: 32), showStatusButton.topAnchor.constraint(equalTo: textField.bottomAnchor, константа: 16), showStatusButton.leadingAnchor.constraint(equalTo:safeAreaLayoutGuide.leadingAnchor, константа: 16), showStatusButton.trailingAnchor.constraint(equalTo:safeAreaLayoutGuide.trailingAnchor, константа: -16), дноЯкорь ]) Ограничение bottomAnchor позволяет contentView подстраиваться под размер содержимого. Теперь я пытаюсь создать тот же пользовательский интерфейс, но теперь использую SnapKit. Вот ограничения для всех объектов в contentView:
userImage.snp.makeConstraints { make in make.top.equalTo(self.safeAreaInsets.top).offset(16) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.height.width.equalTo(userImage.layer.cornerRadius * 2) } userName.snp.makeConstraints { make in make.top.equalTo(self.safeAreaInsets.top).offset(16) make.left.equalTo(userImage.snp.right).offset(16) make.right.equalTo(self.safeAreaInsets.right).inset(-16) } userStatus.snp.makeConstraints { сделать в make.top.equalTo(userName.snp.bottom).offset(16) make.left.equalTo(userImage.snp.right).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) } textField.snp.makeConstraints { сделать в make.top.equalTo(userStatus.snp.bottom).offset(40) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) make.height.equalTo(32) } showStatusButton.snp.makeConstraints { make in make.top.equalTo(textField.snp.bottom).offset(16) make.left.equalTo(self.safeAreaInsets.left).offset(16) make.right.equalTo(self.safeAreaInsets.right).offset(-16) } Я не могу понять, чем заменить ограничение bottomAnchor. Как мне настроить contentView на то, что у меня есть? (или, по сути, расположите его относительно нижней привязки showStatusButton.
На всякий случай, весь проект здесь, а файл, который я меняю, — ProfileHeadevView.swift
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как установить смещение края пропорционально размеру высоты супервида в SnapKit
Anonymous » » в форуме IOS - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-