繁体   English   中英

无法更改从xib加载的UIView的大小和位置

[英]Can't change size and position for UIView loaded from xib

我有一个UICollectionView和顶部的深灰色区域。 在这个灰色区域,我需要使用UIView放置选项卡。 因为我需要插座,所以此UIView具有自己的TabsViewController 无论我做什么,我要添加的视图始终停留在左上角,具有奇怪的偏移量和大小。

我试图更改它的大小和位置,或将其放在不同的视图顶部上-它始终提供相同的视觉效果。

自动布局打开。 该视图的高度应为72,宽度应为100%。

在此处输入图片说明

TabsViewController *tabs = [[TabsViewController alloc] init];
CGSize screen = // returns correct screen size
tabs.view.frame = CGRectMake(0, 0, screen.width, 72);
[self.collectionView addSubview:tabs.view];

我试图从多个位置调用上述代码,包括viewDidLoadviewWillAppearviewDidLayoutSubviewsviewDidAppear

在自动布局中,您必须更改约束而不是框架。 只需将视图约束作为连接到代码,然后尝试更改约束以编程方式设置视图即可。

将IB中的视图约束连接为IBOutlet属性进行编码

范例:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *width;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *hieght;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topSpace;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *horizontalCenter;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftSpace;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rightSpace;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *verticalCenter;

并将值更改为:

self.width.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.hieght.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.topSpace.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.horizontalCenter.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.leftSpace.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.rightSpace.constant=CURRENT_VALUE_FOR_CONSTRAINT;
self.verticalCenter.constant=CURRENT_VALUE_FOR_CONSTRAINT;

此搜索图像2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM