2016-03-08 41 views
0

我試圖重新排列圖像和堆棧視圖(這裏稱爲labelsStack)都包含在另一個堆棧視圖(這裏稱爲堆棧)。我的目標是以編程方式顛倒兩個子視圖的索引順序,以便在運行時改變它們的位置(它們是水平分佈的,所以在理論上,如果我重新排列它們的索引,它應該在自動佈局中重新排序)以編程方式重新排序子視圖將無法工作在tableViewCell

我試過更新索引,交換子視圖,sendViewForward等從蘋果的文檔,但它不牛逼的工作,在這裏我的tableViewCell的代碼:

 override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 


      } 

    override func layoutSubviews() { 
     cellImage.layer.cornerRadius = cellImage.bounds.height/3 
     cellImage.clipsToBounds = true 

     if incoming { 
     } else { 
// as one of the many methods that didn't work 
      self.stack.insertSubview(cellImage, belowSubview: labelsStack) 
     } 


    } 
+0

你有沒有想過建立2套自動佈局約束,然後接通和切斷他們,而不是使用堆棧? –

+0

套佈局約束?你的意思是編程不在故事板? –

+0

我的意思是在故事板中,兩套,從故事板中取消激活一組,並僅保留另一組激活。然後爲所有人創建插座,並在代碼中使用插座激活/停用您需要的插座。 –

回答

0

您可以創建兩個可供選擇的約束集,一個默認順序和另一個是逆序。默認的約束現在在1

enter image description here

結束要開始停用替代設置,您可以使用檢查和更改安裝複選框

enter image description here

您的視圖控制器應該在一個有6個網點:

@IBOutlet weak var topViewTopConstraint1: NSLayoutConstraint! 
@IBOutlet weak var bottomViewTopConstraint1: NSLayoutConstraint! 
@IBOutlet weak var bottomViewBottomConstraint1: NSLayoutConstraint! 

@IBOutlet weak var topViewTopConstraint2: NSLayoutConstraint! 
@IBOutlet weak var bottomViewTopConstraint2: NSLayoutConstraint! 
@IBOutlet weak var topViewBottomConstraint2: NSLayoutConstraint! 

立即激活其他組約束,你可以使用:

self.topViewBottomConstraint2.active = true 
    self.topViewTopConstraint2.active = true 
    self.bottomViewTopConstraint2.active = true 
    self.topViewTopConstraint1.active = false 
    self.bottomViewBottomConstraint1.active = false 
    self.bottomViewTopConstraint1.active = false 

,反之亦然

+0

完美的作品,它很棘手,但它爲我所需要的工作,謝謝你:) –

相關問題