4

当我第一次加载我的日历时,布局变得不对齐(参见图 1)。在将我的设备物理旋转为横向并返回纵向后,它会自行修复。(参考图2)

任何人都知道如何解决这个问题?我不知道从哪里开始找到导致这种情况发生的问题。

旁注:(不确定这是否与问题有关。)

  • 在此之前的页面也有另一个 FSCalendar。
  • 这个受影响的 fscalendar 在一个滚动视图内,约束设置为超级视图的高度 = 0.4,宽度为 8,左右边距为 8,中心 x 与超级视图对齐。

首次加载

设备旋转后

4

1 回答 1

1

我有同样的问题(就像你一样,旋转设备会解决它)。

我能够通过更改布局约束并将 FSCalendar 设置translatesAutoresizingMaskIntoConstraintsfalse(我以编程方式创建了 FSCalendar)来解决我的问题。

最后,我将 FSCalendar 放在另一个 UIView 中,并像这样设置它:

calendarView.translatesAutoresizingMaskIntoConstraints = false
calendarContainer.addSubview(calendarView)
[NSLayoutConstraint(item: calendarView, attribute: .top, relatedBy: .equal, toItem: calendarContainer, attribute: .top, multiplier: 1, constant: 0),
 NSLayoutConstraint(item: calendarView, attribute: .bottom, relatedBy: .equal, toItem: calendarContainer, attribute: .bottom, multiplier: 1, constant: 0),
 NSLayoutConstraint(item: calendarView, attribute: .leading, relatedBy: .equal, toItem: calendarContainer, attribute: .leading, multiplier: 1, constant: 0),
 NSLayoutConstraint(item: calendarView, attribute: .trailing, relatedBy: .equal, toItem: calendarContainer, attribute: .trailing, multiplier: 1, constant: 0)
].forEach({ $0.isActive = true })
于 2018-07-26T16:53:09.177 回答