2016-05-09 3 views
3

У меня есть ViewController с UIScrollView, некоторые UIImages и UIButtons. В раскадровке я установил размер UIScrollView для: width: 320, height: 570Изменить UIScrollView Размер содержимого

Я хочу изменить содержимое моего UIScrollView при загрузке ViewController.

Я добавил сторону в viewDidLoad:

 scrlMain.contentSize = CGSize(width: 320,height: 790) 

А также я добавил код в viewDidLayoutSubviews:

 self.scrlMain.translatesAutoresizingMaskIntoConstraints = true 

Но мой UIScrollView еще последний размер = 570. я не могу используйте viewDidAppear, потому что, когда я нажимаю кнопку, вам нужно изменить цвет. Когда он изменил цвет, мой UIScrollView движется вверх.

Что я сделал не так?

Весь код:

override func viewDidLoad() { 
    super.viewDidLoad() 
    scrlMain.delegate = self 
    scrlMain.contentSize = CGSizeMake(320, 790) 
    } 
override func viewDidLayoutSubviews() { 
    self.scrlMain.translatesAutoresizingMaskIntoConstraints = true 
    self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width/16.0 * 5.0)); 
} 

ответ

3

была допущена ошибка в этой функции:

override func viewDidLayoutSubviews() { 
self.scrlMain.translatesAutoresizingMaskIntoConstraints = true 
self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width/16.0 * 5.0)); 
} 

я удалить этот код:

self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width/16.0 * 5.0)); 

И все правильно

1

Эй @Dim вы можете попробовать this-

yourScrollView.contentSize = CGSizeMake(320, 568) 

И вы можете изменить размер 568 на то, что вы хотите.

+0

Эй @Mohd, я попытался добавил scrlMain.contentSize = CGSizeMake (320, 790) и в viewDidLoad. Но у меня такая же проблема. – Dim

+0

Пожалуйста, показать ваш код? –

+0

Я добавил весь код – Dim

0

Попробуйте это:

yourScrollView.userInteractionEnabled = YES 

и вы, пожалуйста, поддерживайте разницу между вашим размером экрана и вашим Scrollview размером содержимого ... так что она может быть видна правильно

предположит, что yourScrollViewSize greatertThan yourScreenSize

+0

Я добавил код: scrlMain.userInteractionEnabled = true; в viewDidLoad. Но у меня такая же проблема. В Storyboard ViewController есть 570, UIScrollController имеет 570. – Dim

0
override func viewDidLayoutSubviews() { 

    DispatchQueue.main.async { 
    self.scrollview.translatesAutoresizingMaskIntoConstraints = true 
    self.scrollview.contentSize = CGSize(width:0, height:self.scrollview.frame.height*2) // whatever hight you want 
    } 
} 
+0

viewDidLayoutSubviews не в главной теме? –

+0

viewDidLayoutSubviews всегда вызывается в основном потоке - передача этой работы в основной поток из основного потока избыточна. – worthbak

Смежные вопросы