簡體   English   中英

removeFromSuperview函數無法正常工作

[英]removeFromSuperview function doesn't work fine

我有六個圖像視圖,我將它們設置如下:

img1 img2 img3 img4 img5 img6

但是當我通過使用removeFromSuperview函數刪除img1 ,找不到其他圖像removeFromSuperview 例如,如果我刪除了img1 ,則其他圖像視圖彼此出現:

img23456

我不想使用hide函數,因為它們之間會出現一個空格。 例如,如果我刪除img1

'  ' img2 img3 img3 img4 img5 img6

另一方面,我想要的是如果img1被刪除(沒有第一個空格):

img2 img3 img3 img4 img5 img6

我的布局:

在此處輸入圖片說明

更新

我的代碼:

    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()
    }

所以問題是,如果從superView中刪除img1 UIImageView 您對與已刪除的UIImageViews關聯的其余UIImageViews約束將失敗,因為它們已與img1 UIImageView連接。

硬解決方案:當您通過代碼從superView中刪除“鏈”中的某些內容時,需要為每個UIImageView更新/連接/添加約束。

更好的解決方案:(最佳做法)

刪除所有UIImageViews並添加一個UICollectionView

將一個UIImageView添加到該單元格,然后根據需要簡單地deleteadd單元格, UICollectionView將為您處理所有布局

@sneak的答案是解決此問題的標准方法。

我還有一個要分享的想法,我在應用程序中使用過。

spacing constraints設為緊鄰的左UIImageViewmultiplied constant

然后采用img's的width constraintIBOutlet 然后像這樣更改您的其他部分->

else{
       widthImg1.constant = 0
}

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM