【发布时间】:2014-02-27 05:23:20
【问题描述】:
我想创建一个屏幕从下拉并且需要下拉。像 iOS 通知屏幕(但方向相反)。如果有任何示例,请分享。提前致谢。
【问题讨论】:
-
如果您可以使用第三方组件而不是PullableView 是您的正确选择,那就看看吧。
标签: ios objective-c uiviewanimation uiviewanimationtransition
我想创建一个屏幕从下拉并且需要下拉。像 iOS 通知屏幕(但方向相反)。如果有任何示例,请分享。提前致谢。
【问题讨论】:
标签: ios objective-c uiviewanimation uiviewanimationtransition
在 iOS 7 中实现此目的的完整方法是使用交互式自定义过渡。您将使用 UIScreenEdgePanGestureRecognizer 并通过执行部分过渡动画来响应屏幕边缘的拖动手势以匹配用户手指移动的距离。查看 UIPercentDrivenInteractiveTransition 类来帮助你做到这一点。
这是一个完整的例子,你可以下载并运行:碰巧我是从左边或右边做的,而不是顶部或底部,但它是相同的基本思想。
但请注意:如果您尝试从顶部或底部进行操作,则会受到通知中心(顶部)和控制中心(底部)的干扰。防止这种干扰可能很棘手。
【讨论】:
您好,您可以使用它。
- (void)showShareView {
[self.view bringSubviewToFront:self.view_Email];
[UIView beginAnimations:@"Show"
context:nil];
[UIView setAnimationDuration:0.3F];
CGRect frame = self.view_Email.frame;
if (IS_IPHONE5) {
if(txtFieldActiveFlag==1){
frame.origin.y = 568-420;
}else{
frame.origin.y = 568-220;
}
} else {
frame.origin.y = 480 - 275 - 88;
}
self.view_Email.frame = frame;
[UIView commitAnimations];
}
- (void)hideShareView {
[UIView beginAnimations:@"Show"
context:nil];
[UIView setAnimationDuration:0.3F];
CGRect frame = self.view_Email.frame;
if (IS_IPHONE5) {
if(txtFieldActiveFlag==2){
frame.origin.y = 568-220;
}else{
frame.origin.y = 568;
}
} else {
frame.origin.y = 480;
}
self.view_Email.frame = frame;
[UIView commitAnimations];
}
//call method from any button action.
[self showShareView]; //show the view up
[self hideShareView]; //show the view down
谢谢
【讨论】: