需要根据设备方向更改NSLayoutConstraint的乘数:在哪里做?

时间:2015-11-09 07:41:11

标签: ios rotation autolayout orientation nslayoutconstraint

由于multiplier似乎是一个只读属性,我在一些帖子中读到了this这样的帖子,有必要删除旧的NSLayoutConstraint并将其替换为新的public class Answer { static Map<Character, LinkedList<Character>> g = new HashMap<Character, LinkedList<Character>>(); static Set<Character> visited = new HashSet<Character>(); static ArrayList<Character> ans = new ArrayList<Character>(); public static void dfs(char v) { visited.add(v); //some standard code for DFS ans.add(v); } public static String topologicalSort() { for (Character element : g.keySet()) { if (!visited.contains(element)) dfs(element); } //some code to prepare the output } public static void builGraph(String[] words) { //some code to build adjacency list and then use it through g reference } public static String answer(String[] words) { if (words.length == 1) { //some code } builGraph(words); return topologicalSort(); } public static void main(String[] args) { //some code System.out.println(answer(words)); } } 你想要的新乘数。但我不知道哪个方法是正确的...

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以通过覆盖方法willTransitionToTraitCollection:withTransitionCoordinator来捕获方向更改:在视图控制器中,然后可以相应地更新约束。是的,正如您所提到的,如果您需要更改乘数,那么您首先必须删除约束然后再次应用它。如果您在编译时知道在两个方向上使用的乘数,那么我建议使用接口构建器为不同的大小类创建具有不同乘数的单独约束。

实用资料

Adaptive and Size Changes Reference