我使用以下代码创建我的scrollview。我想将scrollView向下移动44px,为我的导航栏腾出空间。
scroll = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
scroll.backgroundColor = [UIColor clearColor];
scroll.delegate = self;
image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Menu.png"]];
scroll.contentSize = image.frame.size;
[scroll addSubview:image];
scroll.minimumZoomScale = scroll.frame.size.width / image.frame.size.width;
scroll.maximumZoomScale = 2.0;
[scroll setZoomScale:scroll.minimumZoomScale];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[scroll addGestureRecognizer:doubleTap];
self.view = scroll;
任何帮助表示赞赏。
答案 0 :(得分:1)
不能只在界面构建器中添加滚动视图作为插座,将其放在导航栏下方。
在.h
中声明滚动视图 在ViewDidLoad 下的.m中
[scroll setScrollEnabled:YES];
[scroll setContentSize: CGSizeMake(320, 1000)]; ////or whatever size you want here
答案 1 :(得分:1)
您可能希望使用不同的框架初始化它...但这取决于此导航栏的创建位置/方式。如果你有一个视图控制器,并且这些都是视图控制器视图的子视图,那么你应该在viewDidLoad中创建对象,然后首先创建导航栏,使用self.view.bounds来获取初始化宽度。我假设您想要放置UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin作为autoResizingMask在这里。然后,如果滚动视图是导航栏下方视图的其余部分,则可以使用
为其创建框架CGRect scrollFrame = CGRectInset(self.view.bounds, 0, navbar.bounds.size.height)
放置一个UIViewAutoresizingFlexibleWidth的autoresizingMask滚动视图上的UIViewAutoResizingFlexibleHeight。
如果要以不同的位置/方式创建视图,则可能需要修改其中一些视图。我假设您的视图是顶部的导航栏,x像素高(在这种情况下为44但在设置滚动视图框架的情况下它不会也不重要)。然后是一个滚动视图填充视图的其余部分。
答案 2 :(得分:1)
您的代码是正确的,手动创建框架:
scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0,44,320,480)];
:)
这适用于iPod和iphone View,但这将使滚动开始于44px