Как вывести подвида на передний план, когда вы нажмете на него?


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

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

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

4 61
ios

4 ответа:

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

[parentView bringSubviewToFront:childView];

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

в объективе-c:

[subview.superview bringSubviewToFront: subview];

в swift:

subview.superview?.bringSubview(toFront: subview)

В Объективе-C:

[self.superview bringSubviewToFront: subview];

В Swift 2.3:

self.superview!.bringSubviewToFront(subview)

В Swift 3.1.1 - Свифт 4.1:

superview.bringSubview(toFront: subview)

для удобства использования пристройки в Swift 3

extension UIView {

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

}