我想把一个视图移到另一个视图的上方,我怎么知道视图的z索引,以及如何移到顶部?
当前回答
我们可以在ios中使用zPosition
如果我们有一个名为salonDetailView的视图 例如:@IBOutlet弱var salonDetailView: UIView!
以我为例,请看图片
并有GMSMapView的UIView @IBOutlet weak var mapViewUI: GMSMapView!
在mapViewUI上显示View salonDetailView
使用zPosition如下所示
salonDetailView.layer.zPosition = 1
其他回答
我们可以在ios中使用zPosition
如果我们有一个名为salonDetailView的视图 例如:@IBOutlet弱var salonDetailView: UIView!
以我为例,请看图片
并有GMSMapView的UIView @IBOutlet weak var mapViewUI: GMSMapView!
在mapViewUI上显示View salonDetailView
使用zPosition如下所示
salonDetailView.layer.zPosition = 1
在你想要放到顶部的视图中… (迅速)
superview?.bringSubviewToFront(self)
IB和Swift
在流动布局中,黄色是父视图,红色,绿色和蓝色是黄色的兄弟子视图,
目标是将子视图(假设为绿色)移动到顶部。
在接口生成器中
在界面构建器中,你所需要做的就是将你想要显示在文档大纲列表顶部的视图拖到底部。
或者,你可以选择视图,然后在菜单中选择编辑器>安排>发送到前面。
在斯威夫特
有几种不同的方法可以通过编程来实现这一点。
方法1
yellowView.bringSubviewToFront(greenView)
这种方法相当于上面的IB答案。 它只在子视图是彼此的兄弟视图时起作用。 子视图数组包含在yellowView.subviews中。这里,bringSubviewToFront将greenView从索引0移动到索引2。这可以观察到 打印(yellowView.subviews.indexOf(持续)
方法2
greenView.layer.zPosition = 1
This method just moves the 3D position of the layer higher (closer to the user) on the z-axis. Since the default is 0 for all the other views, the result is that the greenView looks like it is on top. However, it still remains at index 0 of the yellowView.subviews array. This can cause some unexpected results, though, because things like tap events will still go first to the view with the highest index number. For that reason, it might be better to go with Method 1 above. The zPosition could be set to CGFloat.greatestFiniteMagnitude (CGFloat(FLT_MAX) in older versions of Swift) to ensure that it is on top.
如果你正在使用cocos2d,你可能会看到[parentView bringSubviewToFront:view]的问题,至少它不适合我。我没有把我想要的视图放到前面,而是把其他视图放到后面,这样就成功了。
[[[CCDirector sharedDirector] view] sendSubviewToBack:((UIButton *) button)];
或者用这个
- (void)insertSubview:(UIView *)view belowSubview:(UIView*)siblingSubview;
根据这里
推荐文章
- 模拟器错误fbssystemservicdomain代码4
- 改变UISegmentedControl的字体大小
- 我可以强制UITableView隐藏分隔符之间的空单元格吗?
- 获取用户当前位置/坐标
- 获得推送通知,而应用程序在前台iOS
- 如何取消选定的UITableView单元格?
- 设置自定义UITableViewCells的高度
- 在SwiftUI中创建一个VStack填充屏幕宽度
- 移动文本字段时,键盘出现迅速
- 让iPhone震动
- 将NSString转换为NSDate(然后再转换回来)
- 如何设置JFrame显示居中,不管显示器分辨率?
- 如何在swift中逆向循环迭代?
- applicationwillenter前台vs. applicationDidBecomeActive, applicationWillResignActive vs. applicationDidEnterBackground
- 如何在扑动中格式化日期时间