Ответ 1
bringSubviewToFront должен работать, просто убедитесь, что вы используете его правильно. Использование.
[parentView bringSubviewToFront:childView];
У меня есть представление с примерно 30 subviews на нем. Я хочу добавить код в свой диспетчер представлений subview, так что, когда я нажимаю subview, субвью расширяется, чтобы заполнить экран.
Я использую [self.view setFrame:rect]
для расширения subview, и это отлично работает. Проблема в том, что некоторые из других 29 подзонов выше надзора, которые я только что нажал, поэтому они все еще видны.
Я попытался использовать bringSubviewToFront
из родительского контроллера представления, но это, похоже, не имеет никакого эффекта. Есть ли какой-либо код, который я могу добавить в класс subview viewcontroller, чтобы это произошло?
bringSubviewToFront должен работать, просто убедитесь, что вы используете его правильно. Использование.
[parentView bringSubviewToFront:childView];
Используйте этот код, даже если вы не знаете о superView:
В objective-c:
[subview.superview bringSubviewToFront: subview];
Быстро:
subview.superview?.bringSubview(toFront: subview)
В objective-c:
[self.superview bringSubviewToFront: subview];
В swift2.3:
self.superview!.bringSubviewToFront(subview)
В swift3.1.1:
superview.bringSubview(toFront: subview)
Для удобства использования расширение в Swift 3
extension UIView {
func bringToFront() {
self.superview?.bringSubview(toFront: self)
}
}