Позиционирование UIView для iPhone: есть ли концепция «Z-Index»? - PullRequest
4 голосов
/ 14 июня 2011

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

Говоря гипотетически, предположим, что я хочу черный фон UIView на вершине UIImageView (чтобы он покрывал изображение), как мне это сделать? Есть ли понятие z-index?

Вот мой код для добавления черного фона к изображению:

UIView *blackBG = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];

blackBG.backgroundColor = [UIColor blackColor];

UIImageView *myPicture = [[UIImageView alloc] initWithImage:
                          [UIImage imageNamed: @"myPicture.jpg"]];

int borderWidth = 10;

myPicture.frame = CGRectMake(borderWidth,
                             borderWidth,
                             blackBG.frame.size.width-borderWidth*2,
                             blackBG.frame.size.height-borderWidth*2)];

[blackBG addSubview: myPicture];

1 Ответ

28 голосов
/ 14 июня 2011

Подвиды являются многоуровневыми, вы можете отправить подпредставление обратно с помощью ...

[myView sendSubviewToBack:mySubView];

или привести SubsviewToFront и т.д.*

[myView insertSubview:mySubview atIndex:0]; //Places it at the bottom

[myView insertSubview:mySubview belowSubview:anotherSubview]; //Places it below anotherSubview

Как только вы добавляете представление как подпредставление к другому представлению, родительское представление становится нижней частью стека.Вы можете поиграться с заказами CALayer z, но вы обходите общий подход представлений и подпредставлений.

Создайте одно представление как родительское для обоих представлений bg и просмотра изображений, затем вы можете упорядочить их, как вам нравится.

ОБНОВЛЕНИЕ: У меня есть UIView +Категория макета, которая имеет хорошие [subview sendToBack]; и [subview bringToFront];, которые вы можете найти полезными .... статья здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...