我想把一个视图移到另一个视图的上方,我怎么知道视图的z索引,以及如何移到顶部?
你可以使用视图层的zPosition属性(它是一个CALayer对象)来改变视图的z-index。
zPosition
CALayer
theView.layer.zPosition = 1;
正如维克多Nordling所添加的,“大值在顶部。你可以使用任何你想要的值,包括负值。”缺省值为0。
您需要导入QuartzCore框架来访问该层。只需在实现文件的顶部添加这行代码。
#import "QuartzCore/QuartzCore.h"
[parentView bringSubviewToFront:view] ;
UIView兄弟姐妹按它们被添加到父视图的顺序堆叠。UIView层次结构方法和属性用于管理视图顺序。在UIView.h:
UIView
@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数组中从后往前排序。所以最上面的视图是:
subviews
[parentView.subviews lastObject];
底部视图将是:
[parentView.subviews objectAtIndex:0];
就像Kolin Krewinkel说的,[parentView bringSubviewToFront:view]会把视图带到顶部,但只有当视图在层次结构中都是兄弟视图时才会这样。
[parentView bringSubviewToFront:view]
如果你想通过XCode的Interface Builder来实现,你可以使用Editor->Arrangement下的菜单选项。在那里你会发现“发送到前面”,“发送到后面”,等等。
如果你正在使用cocos2d,你可能会看到[parentView bringSubviewToFront:view]的问题,至少它不适合我。我没有把我想要的视图放到前面,而是把其他视图放到后面,这样就成功了。
[[[CCDirector sharedDirector] view] sendSubviewToBack:((UIButton *) button)];
IB和Swift
在流动布局中,黄色是父视图,红色,绿色和蓝色是黄色的兄弟子视图,
.
目标是将子视图(假设为绿色)移动到顶部。
在界面构建器中,你所需要做的就是将你想要显示在文档大纲列表顶部的视图拖到底部。
或者,你可以选择视图,然后在菜单中转到编辑器比;安排在发送到前台。
有几种不同的方法可以通过编程来实现这一点。
方法1
yellowView.bringSubviewToFront(greenView)
yellowView.subviews
bringSubviewToFront
greenView
0
2
print(yellowView.subviews.indexOf(greenView))
方法2
greenView.layer.zPosition = 1
CGFloat.greatestFiniteMagnitude
CGFloat(FLT_MAX)
在视图中,你想把它带到顶部… (迅速)< / p >
superview?.bringSubviewToFront(self)
我们可以在ios中使用zPosition
如果我们有一个名为salonDetailView的视图 @IBOutlet weak var salonDetailView: UIView!
@IBOutlet weak var salonDetailView: UIView!
在我的情况下,见图像
并有UIView为GMSMapView @IBOutlet weak var mapViewUI: GMSMapView!
@IBOutlet weak var mapViewUI: GMSMapView!
在mapViewUI . View中显示salonDetailView
使用zPosition如下所示
salonDetailView.layer.zPosition = 1
或者用这个
- (void)insertSubview:(UIView *)view belowSubview:(UIView*)siblingSubview;
根据在这里