Я думаю, что понимаю, чего вы хотите. При нажатии на представление вы хотите скрыть кучу «инструментов» (кнопки редактирования и т. Д.). Приложение, которое приходит на ум, - это приложение для просмотра фотографий, которое поставляется с iPhone, когда вы нажимаете один раз, кнопки редактирования/обрезания/возврата и т. Д. ... все скрывается.
Самый простой способ сделать это (на мой взгляд) - добавить все эти элементы управления ui в родительский вид на отдельный «слой». и этот слой будет верхним. Когда пользователь удаляет это представление (пока его не кнопка или что-то внутри родительского вида), вид исчезает (вместе со всеми его дочерними кнопками/элементами управления и т. Д.)
Я лично использовал бы штрихи, потому что это действительно легко реализуется.Вот что метод touchesEnded
должен выглядеть (более или менее)
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
self.hidden = true
//where parentView is the parent view, whatever you named it
}
, и вы должны быть все в порядке, я думаю
также, я забыл упомянуть, вы должны создать подкласс UIView
и имеют touchesEnded
внутри этого частности осуществление UIView
и в раскадровке, вы можете нажать на UIView
, что вы используете в качестве родителя, и дать ему типа классового, что вы назвали подкласс
Я толкнул вверх быстрый проект для вас на github для иллюстрации идеи
Update - сделать элементы появляются снова
вы можете сделать что-то очень похожее. Имейте родителя UIVIew
, с ребенком UIVIew
внутри него, и все кнопки/инструменты внутри ребенка UIView
. Таким образом, на touchesEnded
родителя UIView
вы можете скрыть ребенка UIView
и на touchesEnded
снова завести ребенка UIView
снова. все, что вам нужно сделать внутри touchesEnded
заключается в следующем:
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
childUiView.hidden = !childUiView.hidden
}
таким образом, каждый раз, когда вы касаетесь его, он будет назначать hidden
на противоположное тому, что это было.
Этот метод помогает им исчезнуть при кране, но как мне заставить их снова появиться на кране, а также –
вы можете сделать что-то очень похожее. Имейте родительский 'UIVIew', с дочерним' UIVIew' внутри него и все кнопки/инструменты внутри дочернего 'UIView'. Таким образом, на 'touchesEnded' родительского' UIView' вы можете скрыть дочерний 'UIView' и на' touchesEnded' снова заново создать дочерний 'UIView'. все, что вам нужно сделать внутри 'touchesEnded', следующее:' childUiView.hidden =! childUiView.hidden; 'таким образом, каждый раз, когда вы прикасаетесь к нему, он присваивает' hidden' противоположность тому, что было. Я также обновлю ответ –