#ios #swift #xcode #uikit
#iOS #swift #xcode #uikit
Вопрос:
Мое поле UIScrollView.contentOffset.y очень противоречиво при использовании iPhone разного размера. По какой-то причине, когда я использую экраны разного размера, смещение содержимого меняется. На всех экранах у меня есть UIView, который ПОСЛЕДОВАТЕЛЬНО размещается на y = 331,5 (хотя на самом деле он больше похож на 578, потому что моя панель навигации имеет высоту 148,0, поэтому 331,5 148,0 = 579,5).
Однако, когда я использую экраны разного размера, всегда есть другой contentOffset.переменная y. Ниже приведен ScrollView.contentOffset .значения y для разных экранов при прокрутке и размещении моего UIView в верхней части каждого экрана, прямо под панелью навигации.
- iPhone 12 Max: 550.0
- iPhone 12: 520.0
- iPhone 11: 538,0
- iPhone 8: 490.0
- iPod (7-го поколения): 455
Я понятия не имею, почему это происходит, и это очень расстраивает, потому что я пытаюсь использовать этот UIView (который, как я уже сказал, ВСЕГДА находится в y = 331,5 независимо от размера экрана), «придерживаться» панели навигации и прокручивать мой экран после прокрутки мимо него. Однако я явно не могу этого сделать, если у меня нет точной ссылки на то, где прокручивался мой UIScrollView.
Я уже пытался настроить пропорции между различными размерами экрана, и это приводит к тому, что все становится очень неточным.
Кто-нибудь знает какие-либо другие переменные UIScrollView, которые я мог бы использовать для этого или любого другого способа исправить это?
Спасибо!
Комментарии:
1. Из того, что вы описали, contentOffset . похоже, y работает так, как должно. Чего именно вы пытаетесь достичь? Возможно, более подробная информация о том, чего вы пытаетесь достичь, может облегчить кому-то поиск лучшего подхода
2. Вы пытались настроить поведение contentinsetadjustmentview в UIScrollView?
3. Привет! Я думаю, вы можете попытаться не изменять contentOffset, а вместо этого установить ограничения для ScrollView.