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 ответов

103 просмотра

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта