dan*_*pen 325
您可以使用zPosition视图图层的属性(它是一个CALayer对象)来更改视图的z-index.
theView.layer.zPosition = 1;
Run Code Online (Sandbox Code Playgroud)
正如Viktor Nordling所补充的那样,"重要的是价值观.你可以使用你想要的任何值,包括负值." 默认值为0.
您需要导入QuartzCore框架才能访问该层.只需在实现文件的顶部添加此行代码即可.
#import "QuartzCore/QuartzCore.h"
Run Code Online (Sandbox Code Playgroud)
Nat*_*ror 276
UIView兄弟姐妹按照添加到超级视图的顺序堆叠.该UIView层次的方法和属性是有管理的视角次序.在UIView.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;
Run Code Online (Sandbox Code Playgroud)
兄弟视图在subviews阵列中排在前面.所以最顶层的视图将是:
[parentView.subviews lastObject];
Run Code Online (Sandbox Code Playgroud)
和底部视图将是:
[parentView.subviews objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
就像Kolin Krewinkel所说的那样,[parentView bringSubviewToFront:view]将视图置于顶端,但只有在视图是层次结构中的所有兄弟姐妹的情况下才会出现这种情况.
Sur*_*gch 97
IB和斯威夫特
鉴于流动的布局,黄色是超视图,红色,绿色和蓝色是兄弟的黄色子视图,
目标是将子视图(让我们说绿色)移到顶部.
在Interface Builder中,您需要做的就是将您想要显示的视图拖到文档大纲中列表的底部.
或者,您可以选择视图,然后在菜单中转到编辑器>排列>发送到前面.
有几种不同的方法可以以编程方式执行此操作.
方法1
yellowView.bringSubviewToFront(greenView)
Run Code Online (Sandbox Code Playgroud)
子视图的数组包含在yellowView.subviews.在这里,从索引bringSubviewToFront移动到.这可以用来观察greenView02
print(yellowView.subviews.indexOf(greenView))
Run Code Online (Sandbox Code Playgroud)方法2
greenView.layer.zPosition = 1
Run Code Online (Sandbox Code Playgroud)
0适用于所有其他视图,因此结果greenView看起来就像它在顶部.但是,它仍然保留在数组的索引0处yellowView.subviews.但是,这可能会导致一些意想不到的结果,因为点击事件之类的内容仍将首先进入索引编号最高的视图.出于这个原因,最好采用上面的方法1.zPosition可以设置为CGFloat.greatestFiniteMagnitude(CGFloat(FLT_MAX)在旧版本的雨燕),以确保其在上面.lar*_*ars 19
如果要通过XCode的Interface Builder执行此操作,可以使用Editor-> Arrangement下的菜单选项.在那里你会找到"发送到前面","发送到后面"等.
在视图中你想要带到顶部......(在swift中)
superview?.bringSubviewToFront(self)
Run Code Online (Sandbox Code Playgroud)
小智 5
我们可以在ios中使用zPosition
如果我们有一个名为sallonDetailView的视图,
例如:@IBOutlet weak var salonDetailView: UIView!
并为GMSMapView提供 UIView
例如:@IBOutlet weak var mapViewUI: GMSMapView!
显示mapViewUI上方的ViewsalonDetailView
使用 zPosition 如下
salonDetailView.layer.zPosition = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200286 次 |
| 最近记录: |