我添加了9个UIViews作为UIScrollView的子视图,其代码如下:
-(void)constructedViewsForArray:(NSArray*)_listOfItems {
[_scrollView setContentSize:CGSizeMake(_listOfItems.count * 160, _scrollView.frame.size.height)];
CGRect frame = CGRectMake(10, 5, 100, 90);
for (int i = 0; i<[_listOfItems count];i++) {
UIView *aView = [[UIView alloc]init];
UILabel *test = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, 100, 20)];
test.text = [NSString stringWithFormat:@"%@",[_listOfItems objectAtIndex:i]];
[aView addSubview:test];
[aView setBackgroundColor:[UIColor redColor]];
frame.origin.x=((frame.size.width+5)*i+5);
aView.frame = frame;
[_scrollView addSubview:aView];
}
}
视图被正确添加到scrollview.But滚动后UIView没有对齐。请参考下面的图片:
滚动后,第一个视图和屏幕边缘之间的5px空间丢失。 滚动后如何设置视图位置。
PS:已启用分页。
感谢您的帮助。
此致
iSee的
答案 0 :(得分:2)
我认为你缺少的是需要10到3之间的3到4,以及6和7等,以便分页工作就像你想要的那样。
所以更改行
frame.origin.x=((frame.size.width+5)*i+5);
这样的事情
frame.origin.x=((frame.size.width+5)*i+5 + (i/3) * 5);
答案 1 :(得分:0)
看起来你没有注意到第4列需要10 px的余量。所以你需要在第3列之后添加5个额外的像素。
if((i%3)==0)
frame.origin.x=(((frame.size.width+5)*i+5)+ (i*5));
else
frame.origin.x=((frame.size.width+5)*i+5);
我希望这会有所帮助。