2014-01-21 90 views
0

我用UIScrolView来显示内容(图像)。我没有使用任何第三方代码。我的Scroller和缩放工作正常(以前不工作)。现在我想添加一个功能,在刚刚触摸屏幕后(即点击一次),导航栏上升,如图2所示。我想同时增加UIscrollview的大小,如图2所示。并且,如果用户再次点击导航栏,返回到原始位置,并且scrollView恢复到原始大小和形状。我的scrollView包含水平滚动的图像。以显示导航栏动画如何使导航栏顺利移动到其位置上方,

Image1 before tapping

Image2 after tapping

的一种方式,是我让自定义视图,并添加它的动画 导航栏和使用下面的代码的地方向上移动

[UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.3]; 
    customNavigationbar_view.frame=CGRectMake(0, -66, 320, 65); 
    [UIView commitAnimations]; 

这将变得太笨拙。我甚至准备好这样做。但如何增加动画的滚动视图大小,以便它不会出现滚动视图的大小增加我的点击。如果有第三方提供我想要的所有内容,请告诉我。大多数第三方代码要么很难得到,要么不提供我在项目中需要的所有东西。对于我添加图片的方式感到抱歉。

+1

你试过了'setNavigationBarHidden:动画:UINavigationController的的'方法? – titaniumdecoy

+0

@titaniumdecoy非常感谢。它解决了我当前问题的50%。如何显示MY SCROLLVIEW的转换,我必须显示其增加大小的转换。很抱歉如果我无法正确插入 – Jasmeet

+0

您是否在UIScrollView上设置了UIViewAutoresizingFlexibleHeight? – titaniumdecoy

回答

1

动画在滚动视图帧的变化: 喜欢的东西:

- (void) tap:(UITapGestureRecognizer *)gr { 
    [self.navigationController setNavigationBarHidden: YES animated: YES]; 
    [UIView animateWithDuration:1.0 animations:^{ 
     CGRect frame = self.scrollView.frame; 
     frame.origin.y = 0; 
     frame.size.height = self.view.bounds.size.height; // or whatever you need to keep it from moving up 
     self.scrollView.frame = frame; 
    }]; 
} 
+0

Thanku,它的工作原理,:) – Jasmeet

1

你应该使用:

[self.navigationController setNavigationBarHidden: YES animated: YES]; 

Apple Docs

为了与导航栏让你scrollView举动,你需要设置你的autoLayout到scrollView的顶销到的顶部viewContoller的看法。

+0

非常感谢。它解决了我当前问题的50%。如何显示MY SCROLLVIEW的转换,我必须显示其增加大小的转换。正如我在上面添加的图片中展示的那样。对不起,如果我不能正确illustarte – Jasmeet

+1

更新我的回答 –

+0

对不起,我没有太多的经验。有没有任何示例代码的例子呢? – Jasmeet