Как сосредоточить контент в UIScrollView с помощью contentOffset
Это должно быть ОЧЕНЬ легкая проблема, но у меня возникают проблемы с получением желаемого результата. У меня горизонтальная прокрутка UIScrollView с шириной 320. Ширина его содержимого - 5000. Я пытаюсь сосредоточить содержимое с помощью
// 'self' is the UIScrollView
CGFloat newContentOffsetX = (self.width/2) + (self.contentSize.width/2);
self.contentOffset = CGPointMake(newContentOffsetX, 0);
Я не понимаю, почему это не центрирует контент. Вы можете увидеть что-то не так с расчетами?
Ответы
Ответ 1
Я думаю, вы хотите:
CGFloat newContentOffsetX = (self.contentSize.width/2) - (self.bounds.size.width/2);
Диаграмма
|------------------------self.contentSize.width------------------------|
|-----self.width-----|
|-------- offset --------|
^ center
Ответ 2
Используйте код ниже:
CGFloat newContentOffsetX = (scrollView.contentSize.width - scrollView.frame.size.width) / 2;
scrollView.contentOffset = CGPointMake(newContentOffsetX, 0);