AutoResize UiscrollView.
-
27-09-2019 - |
Вопрос
Я сделал UIViewController, который программически генерирует UiscrollView. Все хорошо, но когда я поворачиваю устройство, UIchollView следует изменить размер, поэтому он принимает полную ширину моего представления.
Есть ли способ сделать это без восстановления полного UISCROLLVIEW?
Большое спасибо ! Себастьян
Это называется в моей ViewDidload:
-(void)buildmyScroller {
myScroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 800, 768, 100)];
//...adding some subviews to myScroller
thumbScroller.contentSize = CGSizeMake(3000, 100);
[[self view] addSubview:myScroller];
}
Потом я пытался изменить размер MyScroller с этим, когда я использовал настроек, я сказал, что MyScroller не ответил на него ...
-(void)changemyScroller {
UIInterfaceOrientation interfaceOrientation = self.interfaceOrientation;
if (interfaceOrientation == UIInterfaceOrientationPortrait) {
[thumbScroller setFrame:CGRectMake(0, 805, 768, 150)];
}
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
thumbScroller.frame = CGRectMake(0, 805, 768, 150);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft){
thumbScroller.frame = CGRectMake(0, 549, 1024, 150);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight){
thumbScroller.frame = CGRectMake(0, 549, 1024, 150);
}
}
И назвал методом в диданимамфирстехальфе ... Потому что я не стесняюсь, где еще называть это.
Снова временно !!
Решение
ScrollView Setframe: CGRETMAKE (X, Y, ширина, высота)]; // Может быть, вам нужно сделать то же самое для содержимого ScrollView, чтобы сделать его подходящим макетом
должен сделать это. Вы можете обернуть это в блоке Uianimation, если он должен быть переходом.
Другие советы
Попробуй это:
if(self.rowNumber == 0){
/******************* Scroller Setup *****************/
// how many pages
int pageCount = 5;
//set up the scrollView
UIScrollView *scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 960)];
// support for Landscape Orienation
if(UIInterfaceOrientationLandscapeLeft){
[scroller setFrame:CGRectMake(0,0,1024, 704)];
}
if(UIInterfaceOrientationLandscapeRight){
[scroller setFrame:CGRectMake(0,0,1024, 704)];
}