gpt4 book ai didi

ios - 如何正确使用 UIScrollView 和 UIPageControl?

转载 作者:行者123 更新时间:2023-11-29 13:23:06 25 4
gpt4 key购买 nike

我有一个 UIScrollView,我想将它与 UIPageControl 一起使用,让不同的页面水平滑动。我需要为每个页面添加一个 UITextView 和一些 UIImageView。在我的 ViewController 中,我调用了一个网络服务,当数据到达时,我按如下方式添加项目:

for(int i=0;i<[arrData count];i++) {
NSString *body=@"Dummy text";

CGRect frame;

frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size.width = self.scrollView.frame.size.width;
frame.size.height = 40; //vedere landscape

UILabel *label = [[UILabel alloc] initWithFrame:frame];
[label setText:body];
label.numberOfLines=0;
[label sizeToFit];
label.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.scrollView addSubview:label];

[label setBackgroundColor:[UIColor whiteColor]];
[self.scrollView addSubview:label];
int y_pos=label.frame.size.height+10;
int x_pos=0;
for(int img=0; img<[[[arrData objectAtIndex:i]objectForKey:@"images"] count]; img++) {
NSString *imageURL=[[[[arrData objectAtIndex:i] objectForKey:@"images"] objectAtIndex:img] objectForKey:@"fn"];

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]];
UIImage *image = [UIImage imageWithData:imageData];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[imageView setFrame:CGRectMake(self.scrollView.frame.size.width * i+img*100, y_pos, image.size.width, image.size.height)];
[self.scrollView addSubview:imageView];

}

}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * [arrData count], self.scrollView.frame.size.height);

它在纵向模式下运行良好,但是当设备旋转时,显然布局被破坏了......这是使用带有 PageControlScrollView 的最佳方式>?我是否必须处理旋转并更改插入项之间的距离,或者(我认为)是否有更好的方法来构建所有内容?

最佳答案

是的,每次方向改变时你都必须重新设置你的 ScrollView 框架,因为灵活的宽度在横向模式下从两侧拉伸(stretch) ScrollView 的宽度,所以它的内容会重叠并在你进行水平滚动时导致问题。您可以做的一件事是将 ScrollView 的自动调整大小掩码设置为 flexibleRightMargin|flexibleLeftMargin。它会将 ScrollView 的内容保持在中心,但滚动看起来不干净。

关于ios - 如何正确使用 UIScrollView 和 UIPageControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com