我想在另一个视图上移动一个视图,我如何知道视图的z索引,以及如何移动到顶部?

推荐答案

UIView个同级按其添加到superview的顺序堆叠.UIView个层次 struct 方法和属性用于管理视图顺序.在我看来.h:

@property(nonatomic,readonly) UIView *superview;
@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];

正如Kolin Krevinkel所说,[parentView bringSubviewToFront:view]会将视图置于顶部,但只有当视图都是层次 struct 中的同级视图时,情况才会如此.

Ios相关问答推荐

如何在SwiftUI ScrollView中zoom 中心项目?

带有RadStudio 11.3/12的Mac Mini M2(Sonoma 14.2.1)上的PAServer-测试连接按钮有效,但部署不起作用

UIAlertController的空子类是否可以与`appearance(whenContainedInInstancesOf:)`一起安全使用

SWIFT-仅解码感兴趣的元素

CIKernel的Metal Shader裁剪问题

使用 WebKit 加载 YouTube 视频时控制台中打印警告

如何在 Android 上的 Flutter 应用中录制内部音频?

归档时命令 PhaseScriptExecution 失败,退出代码非零

Swift/iOS:泛型错误:协议需要嵌套类型V;你想添加它吗?

迁移到 UIKit 生命周期的应用程序不会调用 SceneDelegate

如何在 Swift 中从另一个视图控制器将元素附加到数组中

访问未定义的 stage_in 金属着色器参数

如何在保持纵横比的同时zoom UIView 的内容以适应目标矩形?

如何告诉 SwiftUI 视图绑定到嵌套的 ObservableObjects

如何在 Swift 3 中根据 UIImage 的大小/比率调整 UIImageView 的大小?

Select UITableViewCell 时 UIView backgroundColor 消失

滑动列表项以获取更多选项(Flutter)

UIScrollview 获取touch 事件

如何获取 UICollectionViewCell 的矩形?

在 SKScene 中设置按钮