UIScrollView不会滚动

时间:2010-07-27 10:44:42

标签: iphone objective-c ipad uikit uiscrollview

我遇到UIScrollView问题。 我设置了它的frame.size,contentSize(大于帧),但我仍然无法滚动。 我的程序有这样的sctucrure: MainMenuViewController - > ScrollBarController - >的UIScrollView

这是MainMenuViewController的方法viewDidLoad

的一部分
ScrollBarController *imgScrollBarCtrl = [[ScrollBarController alloc] init];
// set images folder
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imagesFolder = [documentsDirectory stringByAppendingPathComponent:@"SavedImages"];

// set scroll bar frame size
imgScrollBarCtrl.view.frame = CGRectMake(0.0, 0.0, 1024.0, 128.0);
[imgScrollBarCtrl setImagesFolder:imagesFolder];

// method adds subviews UIImageView to the scroll bar 
// and set view's contentSize according thumbnails number
[imgScrollBarCtrl recalculateThumbnailsBounds];

[topPanel addSubview:imgScrollBarCtrl.view];
[imgScrollBarCtrl release];

ScrollBarController类中有方法loadView

- (void)loadView {

    UIScrollView *aScrollView = [[UIScrollView alloc] init];

    aScrollView.scrollEnabled = YES;

    self.view = aScrollView;

    [aScrollView release];
}

我在ScrollBarController的recalculateThumbnailsBounds中设置了我的scrollView的contentSize。它设置正确(1620.0,128.0),但滚动不起作用。 我试图通过添加以下内容在MenuViewController中设置contentSize: ((UIScrollView *)imgScrollBarCtrl.view).contentSize(2000.0, 128.0);但它不起作用。

在设置contentSize并将框架大小和contentSize设置到控制台后,我做NSLog(...) - 它们设置正确freme.size = 1028.0,128.0,contentSize = 1620.0,128.0。

我检查了两个控制器中的方法- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event - MainMenuController和ScrollBarController。只有主控制器触发此方法。 ScrollBarController从不接收触摸事件......可能这是一个问题...

有没有人知道可能出现什么问题?干杯!

1 个答案:

答案 0 :(得分:-1)

[[UIScrollView alloc] initWithFrame:(CGRect)frame]

所有UIView后裔都在使用该方案。

此外,您的代码段并不清楚您要尝试实现的目标,因此您的代码可能会遇到其他问题。

您应该首先尝试在 - (void)loadView方法中设置contentSize,然后查看是否获得了正确的行为。