172 похожих чатов

Всем привет, заметил какое то странное поведение UIScrollView, мне нужно

разместить на экране ScrollView а в него запихнуть объекты, например пусть это будет UIView у которого высота 4000, если я буду размещать UIView на ScrollView с помощью констрейнт SnapKit, то на экране отображеться scrollView и uiview, но scrollView не крутиться, а если я размещаю uiview вот таким образом:


vieww.frame = CGRect(x: 50, y: 200, width: 100, height: 4000)


то все отображеться и scrollView крутиться, у меня вопрос почему так получаеться и как мне размещать объекты на scrollView с помощью SnapKit???

p.s вот полный код:

import UIKit
import SnapKit

class MainScreenView: UIViewController {

private let myScrollView = UIScrollView()
private let vieww = UIView()


override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .systemBackground

setupUI()
}

private func setupUI() {

view.addSubview(myScrollView)
myScrollView.addSubview(vieww)

myScrollView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.leading.equalToSuperview()
make.trailing.equalToSuperview()
make.bottom.equalToSuperview()
}


vieww.snp.makeConstraints { make in
make.top.equalToSuperview().inset(50)
make.centerX.equalToSuperview()
make.height.equalTo(4000)
make.width.equalTo(100)
}


//vieww.frame = CGRect(x: 50, y: 200, width: 100, height: 4000)

vieww.backgroundColor = .accent
myScrollView.contentSize = vieww.bounds.size
myScrollView.showsVerticalScrollIndicator = true
myScrollView.backgroundColor = .gray


}



}

2 ответов

52 просмотра

Нижний констрейнт надо задать

так получается, потому что система не может вычислить размер контента скроллвью. причем ни по вертикали ни по горизонтали. чтобы вычислить размеры нужно либо задать contentSize (что ты и делаешь, когда руками прописываешь фрейм дочерней вью, а затем эти размеры устанавливаешь на скролл), либо задать констрейнты, которые будут этот размер позволять высчитывать, например, привязать дочернюю вью к contentLayoutGuide скрола со всех сторон, а саму дочернюю вью с фиксированными размерам (например задать констрейнты ширины и высоты, либо возвращать что-нибудь желаемое в свойстве intrinsicSize)

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
11
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта