簡體   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