如果可能,我想禁用UIScrollView的垂直滚动..我的代码如下所示。工作正常,除了用户可以向上和向下滚动,我不相信...我要提前感谢.. < / p>
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, self.view.frame.size.height / 3)];
scroll.contentSize = CGSizeMake(scroll.contentSize.width,scroll.frame.size.height);
scroll.pagingEnabled = YES;
scroll.backgroundColor = [UIColor blackColor];
int xVal = 30;
NSInteger numberOfViews = 5;
for (int i = 0; i < numberOfViews; i++) {
UILabel *testLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(xVal, 0, 90, 100)];
UILabel *testLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(xVal, 20, 90, 100)];
UILabel *testLabel3 = [[UILabel alloc] initWithFrame:CGRectMake(xVal, 40, 90, 100)];
testLabel2.backgroundColor = [UIColor clearColor];
testLabel2.text =@"Test1";
testLabel2.textColor = [UIColor whiteColor];
testLabel2.font = [UIFont boldSystemFontOfSize:12];
testLabel1.backgroundColor = [UIColor clearColor];
testLabel1.text =@"Test2";
testLabel1.textColor = [UIColor whiteColor];
testLabel1.font = [UIFont boldSystemFontOfSize:12];
testLabel3.backgroundColor = [UIColor clearColor];
testLabel3.text =@"Test3";
testLabel3.textColor = [UIColor whiteColor];
testLabel3.font = [UIFont boldSystemFontOfSize:12];
xVal += 120;
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(xVal, 30, 150, 130)];
view.backgroundColor = [UIColor blackColor];
xVal += 200;
[scroll addSubview:testLabel1];
[scroll addSubview:testLabel2];
[scroll addSubview:testLabel3];
[scroll addSubview:view];
}
[self.view addSubview:scroll];
答案 0 :(得分:21)
在我的情况下,我无法获得scrollview的高度(由于自动布局,我无法在viewDidLoad中获得高度)。您可以将其添加到委托方法。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
self.scrollView.contentOffset = CGPointMake(self.scrollView.contentOffset.x, 0);
}
答案 1 :(得分:10)
您必须将滚动视图内容高度设置为滚动视图高度
CGSize scrollableSize = CGSizeMake(scrollableWidth, yourScrollViewHeight);
[myScrollView setContentSize:scrollableSize];
答案 2 :(得分:4)
这可能是重复的
disabling vertical scrolling in UIScrollView
或者你也可以试试这个:
self.scrollview.contentSize = CGSizeMake(self.scrollview.frame.size.width * number_of_items, 1);
答案 3 :(得分:1)
假设它是iPhone应用程序,屏幕分辨率 320×480 。
现在,您将滚动视图的高度设置为self.view.frame.size.height / 3
。
在这里,您的视图高度实际上被视为 460 而不是 480 (对于staus条为20px)。
因此,当您将其他视图作为子视图添加到滚动视图时,其框架将退出滚动的内容视图。因此,您需要在设置帧/内容大小时进行管理。
请告诉我这是否适合您。
答案 4 :(得分:0)
没有问题,只需更改UIScrollView的contentSize就可以了。增加它的宽度大小,它的高度应该和现在一样。另外你也可以隐藏垂直滚动条。
scroll.showsVerticalScrollIndicator = NO;
scroll.contentSize = CGSizeMake(scroll.contentSize.width + xVal,scroll.frame.size.height);
答案 5 :(得分:0)
你应该这样做:
aScrollView.scrollsToTop = NO;
aScrollView.delegate = self;
aScrollView.contentSize = CGSizeMake(aScrollView.frame.size.width * X, aScrollView.frame.size.height/2);
答案 6 :(得分:0)
在xml文件中,scrollview有两个可用于水平滚动和垂直滚动的属性。根据您的要求,您可以选中或取消选中,如果要停止垂直或水平滚动,则必须分别使用scrollview的高度或宽度制作相同的scrollview内容大小