我的屏幕底部有滚动视图。当我点击按钮它加载滚动视图。但是scrollview占据了完整的父视图。对于某些rectMake,我无法控制底部视图。如果我使用scrollview,我无法处理其他一些按钮操作,并点击其他子视图的事件。
代码:
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height)];
scrollview.scrollEnabled=YES;
for (int i = 0; i<[self.array count]; i++ ) {
NSLog(@"index %d",i);
imgView1=[[UIButton alloc]initWithFrame:CGRectMake(20+(i*74), 500, 72, 72)];
[imgView1 setTag:i+1];
[imgView1 addTarget:self action:@selector(Clicked:) forControlEvents:UIControlEventTouchUpInside];
[imgView1 setImage:((Mysof *)[self.array objectAtIndex:i]).photo forState:UIControlStateNormal];
[scrollview addSubview:imgView1];
}
[scrollview setContentSize:CGSizeMake(CGRectGetMaxX(imgView1.frame),self.view.frame.size.height)];
[self.view addSubview:scrollview];
日志:
scroll is <UIScrollView: 0x1f03d550; frame = (0 0; 320 568); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x1f037090>; layer = <CALayer: 0x1f036670>; contentOffset: {0, 0}>
答案 0 :(得分:2)
你这样做:
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0,320,self.view.frame.size.height)];
相反试试这个:
int y = self.view.frame.origin.y+ self.view.frame.size.height-200;
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,y,320,200)];
此处,Scrollview将显示在视图的底部,尺寸为320X200。你可以根据自己的要求改变高度。当你改变高度然后也改变self.view.frame.origin.y + self.view.frame.size.height-changedHeight的值。
并制作Imageview框架如下:
imgView1=[[UIButton alloc]initWithFrame:CGRectMake(20+(i*74), 0, 72, 72)];
内容大小应小于滚动视图高度,仅适用于水平滚动。 这里,宽度应该是所有imageview的宽度+给定空间的总和。所以我想说在你的for循环中尝试使用像这样的宽度变量,并使用宽度到内容大小,以便根据图像的总宽度设置。
int Width = 0;
for (int i = 0; i<[self.array count]; i++ ) {
Width = Width + 20+(i*74);
}
[scrollview setContentSize:CGSizeMake(Width,imgView1.frame.size.height+20)];
希望它能帮助!!
答案 1 :(得分:0)
将scrollView的高度设置为底部按钮的原点
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0,320,400)];
这里我假设您的按钮/底部视图的y位置为400.相反,您可以根据需要进行更改