目前我正在显示一个从窗口顶部向下滑动到位置的UIView:
-(void)showNotificationBar
{
[notificationBar setFrame: CGRectMake(0, 0, 320, 44)];
[[[UIApplication sharedApplication] keyWindow] addSubview:notificationBar];
[UIView animateWithDuration:0.5
delay:0.0
options: UIViewAnimationCurveEaseInOut
animations:^{
[notificationBar setFrame: CGRectMake(0, 59, 320, 32)];
}
completion:^(BOOL finished){
NSLog(@"Done!");
}];
}
我希望从我的UINavigationBar下滑出来。现在它正从窗口顶部滑动到导航栏的底部。我希望它从导航栏的底部滑动以显示自己。现在确切地知道如何做到这一点?
答案 0 :(得分:9)
您在窗口中的所有其他视图之上添加了notificationBar
。您需要将其添加为导航栏下方导航栏超级视图的子视图。
假设您的UINavigationBar
位于属性self.navBar
中。试试这个:
- (void)showNotificationBar
{
CGRect frame = CGRectMake(0, 0, 320, 44);
frame.origin.y = CGRectGetMaxY(self.navBar.frame) - frame.size.height;
notificationBar.frame = frame;
[self.navBar.superview insertSubview:notificationBar belowSubview:self.navBar];
[UIView animateWithDuration:0.5 animations:^{
CGRect frame = notificationBar.frame;
frame.origin.y = CGRectGetMaxY(self.navBar.frame);
notificationBar.frame = frame;
}];
}
答案 1 :(得分:0)
快速浏览一下,看起来你想要研究如何“掩盖”一个图层。 看看这篇文章。
"Masking" an animation? iPhone SDK
如果您要在视图(隐藏视图)下屏蔽下拉菜单,您可以显示动画,而不会看起来像是从导航栏上方看到的,而是在它下方。