Подтвердить что ты не робот

Как перенести субвью на фронт, когда вы нажмете его?

У меня есть представление с примерно 30 subviews на нем. Я хочу добавить код в свой диспетчер представлений subview, так что, когда я нажимаю subview, субвью расширяется, чтобы заполнить экран.

Я использую [self.view setFrame:rect] для расширения subview, и это отлично работает. Проблема в том, что некоторые из других 29 подзонов выше надзора, которые я только что нажал, поэтому они все еще видны.

Я попытался использовать bringSubviewToFront из родительского контроллера представления, но это, похоже, не имеет никакого эффекта. Есть ли какой-либо код, который я могу добавить в класс subview viewcontroller, чтобы это произошло?

4b9b3361

Ответ 1

bringSubviewToFront должен работать, просто убедитесь, что вы используете его правильно. Использование.

[parentView bringSubviewToFront:childView];

Ответ 2

Используйте этот код, даже если вы не знаете о superView:

В objective-c:

[subview.superview bringSubviewToFront: subview];

Быстро:

subview.superview?.bringSubview(toFront: subview)

Ответ 3

В objective-c:

[self.superview bringSubviewToFront: subview];

В swift2.3:

self.superview!.bringSubviewToFront(subview)

В swift3.1.1:

superview.bringSubview(toFront: subview)

Ответ 4

Для удобства использования расширение в Swift 3

extension UIView {

    func bringToFront() {
        self.superview?.bringSubview(toFront: self)
    }

}