所以我已经看到了很多其他帖子,我想我几乎已经尝试了所有这些帖子。我不希望这是一个重复,但我无法解决我的问题。我有这样的设置:
当我到达我的滚动视图控制器时,我可以翻页很好,但我也可以垂直移动图片。我认为它与NavigationBar有关,迫使ScrollView框架向下,但仍然将框架设置为全屏尺寸。如何防止滚动视图视图控制器上的任何垂直滚动?我的.m在下面:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationController.navigationBarHidden = NO;
i = 0;
_PhotoBundle = [[NSBundle mainBundle] pathsForResourcesOfType:@".jpg"inDirectory:@"Dog_Images"];
_PhotoArray = [[NSMutableArray alloc] initWithCapacity:_PhotoBundle.count];
for (NSString* path in _PhotoBundle)
{
[_PhotoArray addObject:[UIImage imageWithContentsOfFile:path]];
}
for (int x = 0; x < _PhotoArray.count; x++)
{
CGRect frame;
frame.origin.x = self.mainScroll.frame.size.width * x;
frame.origin.y = 0;
frame.size = self.mainScroll.frame.size;
UIImage *nextImg = [[UIImage alloc] init];
nextImg = [_PhotoArray objectAtIndex:x];
UIImageView *nextIV = [[UIImageView alloc] initWithFrame:frame];
[nextIV setImage:nextImg];
[self.mainScroll addSubview:nextIV];
//NSLog(@"Pass %d", x);
}
self.mainScroll.contentSize = CGSizeMake(self.mainScroll.frame.size.width * _PhotoArray.count, self.mainScroll.frame.size.height);
}
非常感谢!!
答案 0 :(得分:6)
所以我发现了一篇完美解释它的帖子:
How to disable just vertical scrolling in a UIScrollView?
当我改变我的
时CGSizeMake(self.mainScroll.frame.size.width * _PhotoArray.count, self.mainScroll.frame.size.height);
到
CGSizeMake(self.mainScroll.frame.size.width * _PhotoArray.count, 1.0);
它使contentSize大于边界......我读过的东西,但没有完全理解。我希望这可以帮助那些坚持这个的人...
答案 1 :(得分:1)
UIScrollView
只有当 - contentSize
设置得比它的框架大时,才会滚动它的内容。因此,当您设置self.mainScroll.contentSize
时,它的帧数会增加contentSize.height
。
在使用它的课程之前,请至少阅读Apple的文档。这很无聊。但薪水可以弥补所有无聊的东西。
顺便说一下。您正在使用UIScrollView错误地显示UIImageView对象。尝试观看Apple WWDC会话(可以从iTunes下载) - 有两到三个会话关于如何仅使用三个UIImageView对象来绘制无休止的UIScrollView分页