Если вы используете cocos2d, вы можете увидеть проблему с [parentView takeSubviewToFront: view], по крайней мере, у меня это не сработало. Вместо того, чтобы перенести вид, который я хотел, на передний план, я отправил другие виды назад, и это помогло.

у переместить одно представление поверх другого, как узнать индекс z представления и как перейти к вершине?

Ответы на вопрос(1)

Решение Вопроса

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

@property(nonatomic,readonly,copy) NSArray *subviews;

- (void)removeFromSuperview;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

- (void)addSubview:(UIView *)view;
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;

Виды братьев и сестер упорядочены задом наперед вsubviews массив. Итак, самый верхний вид будет:

[parentView.subviews lastObject];

и вид снизу будет:

[parentView.subviews objectAtIndex:0];

Как сказал Колин Крюинкель,[parentView bringSubviewToFront:view] приведет представление к вершине, но это только в том случае, если все представления являются братьями и сестрами в иерархии.

Ваш ответ на вопрос