У меня есть простой, пользовательский UIView
подкласс LineView
, который переопределяет drawRect:
, чтобы нарисовать линию от верхнего правого угла до нижнего левого угла.
Это LineView
помещается как подпредставление в пределах UIScrollView
с использованием фиксированных ограничений для его высоты и ширины и верхних + ведущих ограничений для его положения.
Когда прокручивается UIScrollView
, ограничения ширины обновляются для изменения размеравид линии:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
...
self.lineViewWidthConstraint.constant = someFactorRelatedToTheCurrentScrollPosition;
[self.lineView setNeedsLayout];
}
Проблема: Изменение ширины НЕ вызывает метод drawRect: LineView
.Таким образом, линия не перерисовывается, а просто сжимается или растягивается.Даже использование setNeedsLayout
вручную не вызывает повторное рисование.
Есть идеи, почему метод рисования не вызывается и как это исправить?