В настоящее время я делаю переход между Android и iOS с помощью Swift, и это было одной из моих первых проблем. После поиска в Интернете я обнаружил, что некоторые люди имели хорошие результаты, установив высоту или ширину UIView равным 0, в зависимости от того, хотите ли вы, чтобы представление исчезло вертикально или горизонтально. Для реализации этой идеи в моем приложении я определил две функции:
enum Direction {
case HORIZONTAL, VERTICAL
}
func removeView(view: UIView, direction: Direction) {
// Removing the view vertically
if direction == .VERTICAL {
let constraint = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Height,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
view.addConstraint(constraint)
} else { // Removing the view horizontally
let constraint = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Width,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
view.addConstraint(constraint)
}
}
// Removing the view both horizontally and vertically
func removeView(view: UIView) {
let constraintH = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Height,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
let constraintW = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Width,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
view.addConstraint(constraintH)
view.addConstraint(constraintW)
}
И, похоже, это работает на симуляторе. Надеюсь это поможет.
Этот пост может дать вам представление. [LinkIsHere] (http://stackoverflow.com/questions/17869268/ios-equivalent-for-android-view-gone-visibility-mode) – TeachMeJava