2017-03-05 177 views
0

我有六個imageviews,我將它們設置是這樣的:removeFromSuperview功能無法正常工作

img1 img2 img3 img4 img5 img6 

但是當我用removeFromSuperview功能等imageviews不會出現找刪除img1。例如,如果我刪除img1,其他imageviews出現在對方:

img23456 

我不想使用hide功能,因爲它們之間的空間將出現。在另一方面

' ' img2 img3 img3 img4 img5 img6 

,我要的是,如果img1移除(不含第一個空格):例如,如果我刪除img1

img2 img3 img3 img4 img5 img6 

我的佈局:

enter image description here

更新

我的代碼:

if(self.job.wifi == "1") 
    { 
        self.img_option_1.isHidden = false 
     self.img_option_1.image = UIImage(named: "wififree") 

    }else{ 
     self.img_option_1.removeFromSuperview() 
    } 

    if(self.job.apple_health == "1") 
    { 
     self.img_option_2.isHidden = false 
     self.img_option_2.image = UIImage(named: "sib_noghrei") 
    }else{ 
     // self.img_option_2.removeFromSuperview() 
     self.img_option_2.removeFromSuperview() 
    } 

    if(self.job.wc == "1") 
    { 

     self.img_option_3.isHidden = false 
     self.img_option_3.image = UIImage(named: "wc") 
    }else{ 
     self.img_option_3.removeFromSuperview() 
    } 

    if(self.job.full_time == "1") 
    { 
     self.img_option_4.isHidden = false 
     self.img_option_4.image = UIImage(named: "fulltime") 
    }else{ 
     self.img_option_4.removeFromSuperview() 
    } 


    if(self.job.pos == "1") 
    { 

     self.img_option_5.isHidden = false 
     self.img_option_5.image = UIImage(named: "pos") 
    }else{ 
     self.img_option_5.removeFromSuperview() 
    } 

    if(self.job.parking == "1") 
    { 
     self.img_option_6.isHidden = false 
     self.img_option_6.image = UIImage(named: "parking") 
    }else{ 
     self.img_option_6.removeFromSuperview() 
    } 
+0

這是什麼語言,Swift?你是如何添加6個UIImageViews的:img1 img2 img3 img4 img5 img6?如果我在Swift中輸入那樣的話,我可以添加6個UIImageViews嗎? – 2017-03-05 19:59:21

+0

我的語言是'快速'。 –

+0

@ S.M_Emamian爲了更容易地幫助你並理解你在做什麼,添加你的代碼而不是img 1 img 2 img 3 img 4 ...截至目前,我認爲沒有人會理解你正在嘗試做什麼問題是什麼。也許你也可以添加圖片以及使用者界面發生的事情。 – 2017-03-05 20:01:56

回答

3

所以,問題是,如果你從你的SuperView刪除IMG1UIImageView。您在連接到您刪除會失敗的人,因爲他們連接到IMG1UIImageViewUIImageViews其餘約束。

硬解:您需要更新/連接/添加約束每一個UIImageView,當你從上海華通過代碼移除「鏈」的東西。

更好的解決方案:(最佳實踐)

刪除所有UIImageViews,並添加一個UICollectionView

添加一個UIImageView到小區,根本deleteadd細胞如你所願,和UICollectionView處理所有的佈局你

+1

更好的解決方案(和實際的最佳實踐),使用更容易用於靜態內容的「UIStackView」。 – deadbeef

+0

如何快速完成它:刪除圖像視圖的所有約束,選擇所有的圖像視圖,並做編輯 - >嵌入 - >堆棧視圖 – deadbeef

+0

@deadbeef很好添加另一個選項作爲UIStackView。但是,UIStackView支持** iOS 9.0 **>,因此:,調用一些只支持1版歷史的實際最佳實踐是**不是一種好的做法,它被稱爲選項 – 2017-03-05 20:28:39

0

@潛行的答案是解決這個問題的標準方式。

我有一個想法更加分享,這是我在我的應用程序使用。

充分利用spacingconstraints爲眼前的左UIImageViewmultipliedconstant

然後取img的widthconstraintIBOutlet。然後改變你的其他部分這樣的 - >

else{ 
     widthImg1.constant = 0 
} 

現在的間距也將變爲零,因爲它是一個相乘常數。

+0

我在我的答案中有2個解決方案,更新約束是其中之一:)然而,好的工作,你給了一個詳細的例子和解決方案的代碼和解釋!會爲此讚賞你。 – 2017-03-05 20:34:32

+1

感謝您的編輯。我將來會記住我的答案的質量。 – Naresh