2015-06-10 57 views
0

我被卡住,我不知道如何刪除隱藏的UIImage的間距。目的是如果標誌爲真,則顯示UIImage,如果標誌爲假,則UIImage被隱藏,但隱藏圖像的空間仍然存在。如何刪除隱藏的UIImage的空間?

我正在使用自動佈局。

enter image description here

+0

U可以設置\t self.imageview.frame重新建立堆疊視圖和相鄰元件之間的約束。 size.width = 0; self.imageview.frame.size.height = 0; 可能會幫助你... –

+0

它不適用於自動佈局。我已經試過了。 @yagneshdobariya – ppshein

+0

在這裏檢查... http://stackoverflow.com/questions/19561269/autolayout-with-hidden-uiviews –

回答

2

如果您正在使用自動佈局和故事板可以設置創建一個IBOutlet爲您的控制器類的屬性。然後你將它鉤到UIImage的寬度約束上。在隱藏UIImage的代碼中,將IBConstraint設置爲0.當顯示時,將IBConstraint設置回正常寬度。

(在或者Controller.h)

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintImageWidth; 

(在Controller.m或者)(僞碼)

if(hidden){ 
    constraintImageWidth.constant = 0; 
} 
else{ 
    constraintImageWidth.constant = 30; 
} 

還應該有標籤的左側和之間的水平約束在故事板中設置的圖像的右側。

enter image description here

在這裏你會檢查寬度框中添加的寬度約束。

enter image description here

在這裏你會連接你的控制器

1

在引用出口到IBOutlet中處理這種情況的最簡單,最有效的方法是使用堆棧視圖。 在水平堆棧視圖中插入兩個圖像,堆棧視圖將在內部處理間距。像對齊,間距等其他屬性可以根據需要調整。 請記住,你將不得不因爲一旦意見被添加到堆棧視圖所有如果約束被清除