2016-12-20 4 views
4

Я хочу попробовать добавить форму вида на виду прокрутки, но взгляд не полностью добавлено на рамке зрения скроллинга, мой код:ScrollView Добавить подвид в быстром 3

import UIKit 

class AddIncomeVC: UIViewController { 
    @IBOutlet var scrollView: UIScrollView! 
    @IBOutlet var views: UIView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     scrollView.contentSize = views.frame.size 
     scrollView.addSubview(views) 

    } 

    override func viewDidLayoutSubviews() { 
     super.viewDidLayoutSubviews() 
     views.frame = CGRect(x: 0, y: 0, width: scrollView.frame.size.width, height: scrollView.frame.size.height) 
    } 

} 

enter image description here

Спасибо,

+0

просто измените одну строку views.frame = CGRect (x: 0) , y: 0, width: scrollView.frame.size.width, height: scrollView.frame.size.height) this to views.frame = CGRect (x: 0, y: 0, width: scrollView.bounds.width , height: scrollView.bounds.hight) –

+0

@ Химаншу, получая ту же самую проблему, –

+0

Брат тогда использует ограничивать его тесто для управления экраном, если вам нужно, тогда я скажу вам –

ответ

2

Редактировать линии

views.frame = CGRect(x: 0, y: 0, width: scrollView.frame.size.width, height: scrollView.frame.size.height)

в

views.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height)

+0

С той же проблемой –

+0

Вы установили ограничения в раскадровке для scrollView? –

+0

Эта строка scrollView.contentSize = views.frame.size в viewDidLoad неверна –

1

я получаю решить мою проблему с этим кодом:

import UIKit 

class AddIncomeVC: UIViewController { 
    @IBOutlet var scrollView: UIScrollView! 
    @IBOutlet var views: UIView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     scrollView.contentSize = views.frame.size 
     scrollView.addSubview(views) 


    } 

    override func viewDidLayoutSubviews() { 
     super.viewDidLayoutSubviews() 
     views.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height) 

    } 

} 

Спасибо всем за то, что драгоценное время на мой вопрос. enter image description here

1

Проблема: при просмотре загружен, ваши ограничения не обновляются до новых размеров дисплея. Я считаю, что ваша проблема возникает из-за того, что вы используете приложение с помощью симулятора разного размера из раскадровки ... большего размера (раскадровка с использованием iPhone SE и работа на симуляторе iphone 6, например).

В представлении «Загрузить», ваше представление уже существует, его правда ... но его ограничения по-прежнему имеют размеры iphone SE.

Таким образом, при просмотре загрузился размер контента (который вы хотите с размером экрана iphone6), равный размеру просмотра в режиме раскадровки (который по-прежнему имеет размер экрана для iphone SE).

Ваше решение хорошо работает. После того, как макет iOS полностью отобразит все подвидности, ограничения обновляются до новых размеров экрана, сохраняя свои пропорции. В представлении ViewDidLayoutSubviews «вид» уже имеет правильные значения ограничений ... Таким образом, в представлении есть размеры экрана iphone6, и вы можете установить рамку с правом

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