2012-10-05 58 views
0

我正在使用以下代碼創建我的滾動視圖。我想將scrollView向下移動44px以爲我的導航欄騰出空間。如何將scrollView向下移動44x以便爲NavBar騰出空間

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; 

任何幫助表示讚賞。

+1

添加44到UIScrollView的frame.origin.y。 – Jeremy

回答

1

您的代碼是正確的,手動創建幀做:

滾動= [[UIScrollView中的alloc] initWithFrame:方法CGRectMake(0,44,320,480)];

:)

這是iPod和iPhone查看但這會讓滾動開始在44px

1

你不能在界面生成器中添加一個滾動視圖作爲插座,把它放在你的導航欄下面。在.H

在.M

申報滾動視圖的viewDidLoad

[scroll setScrollEnabled:YES]; 
[scroll setContentSize: CGSizeMake(320, 1000)]; ////or whatever size you want here 
1

你可能想用不同的幀來初始化它...但它取決於在哪裏/這個導航欄是怎麼被創建。如果你有一個視圖控制器,並且這些都是視圖控制器視圖的所有子視圖,那麼你應該在viewDidLoad中創建對象,然後首先創建導航欄,使用self.view.bounds獲取初始化寬度。我假設你會想要把UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin作爲autoResizingMask在這裏。然後,如果滾動視圖是導航欄下方的視圖的其餘部分,則可以使用

CGRect scrollFrame = CGRectInset(self.view.bounds, 0, navbar.bounds.size.height) 

把UIViewAutoresizingFlexibleWidth的autoresizingMask爲它創建的框架|滾動視圖上的UIViewAutoResizingFlexibleHeight。

如果您以不同的位置/方式創建視圖,那麼其中一些可能需要修改。我假定您的視圖是頂部的導航欄,高度爲x像素(在這種情況下爲44,但在設置滾動視圖框架的情況下並不重要)。然後用滾動視圖填充視圖的其餘部分。

相關問題