2014-09-25 3 views
0

Я недавно начал новый проект с iOS 8, я пытался кое-что проделать с помощью UIScrollView, поэтому я создал новый проект с одним представлением, добавил прокрутку в основную раскадровку , добавил к нему представление и увеличил размер содержимого, однако прокрутка не прокручивает весь размер содержимого. Код так:iOS 8 UIScrollView не соответствует размеру содержимого

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
UIViewController* controllerA = [[UIViewController alloc] init]; 
[[controllerA view] setBackgroundColor:[UIColor blueColor]]; 
[[controllerA view] setBounds:[[self view] bounds]]; 

[_comicScrollView addSubview:[controllerA view]]; 

[_comicScrollView setContentSize:CGSizeMake(640, 480)]; 

// Do any additional setup after loading the view, typically from a nib. 
} 

И это конечная точка, где вид прокрутки останавливается: http://imgur.com/ZYlE6yK

+0

Вы можете проверить рамку scrollView? 'NSLog (@ "% @", NSStringFromCGRect (_comicScrollView.frame));' – streem

ответ

0

Проблемы вы устанавливаете размер контента непосредственно трудно закодированный в viewDidLoad. Это может сломаться, если вы просто вращаете устройство.

решение перезаписать

- viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    CGRect boundsOfSelf = self.view.bounds; 
    _comicScrollView.frame = boundsOfSelf; 
    [_comicScrollView.frame setContentSize: boundsOfSelf.size]; 
    // also resize your controllerA.view here if needed. 
} 

всегда не набор кадров в viewDidLoad. Они не приспосабливаются ни к чему во время жизни viewController. PhoneStatusBar, Изменение ориентации и т. Д. Также этот метод будет работать для всех телефонов и пэдов :)