2016-03-08 4 views
0

Я пытаюсь изменить порядок изображения и стек (здесь называются labelsStack), которые содержатся в другом стеке (здесь называется стек). Мой гость должен был бы программно изменить индексный порядок обоих подзонов, чтобы изменить их постулирование во время выполнения (они распределены по горизонтали, поэтому теоретически, если я переупорядочу их индексы, он должен переупорядочить их при автоопределении)Переупорядочение подпрограмм программно не будет работать в таблицеViewCell

Я пробовал обновить индексы, обмен подвиды, sendViewForward и т.д. из дока Apple, но это Безразлично т работа, здесь показан код моего 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

Чтобы сначала отключить альтернативные настройки вы можете использовать инспектор и менять установлен CheckBox

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 

и ViceVersa

+0

, который отлично работает, это сложно, но он делает работу за то, что мне нужно, спасибо за это :) –

Смежные вопросы