Как скользить UIView прямо над UITabBar - PullRequest
1 голос
/ 28 ноября 2011

У меня есть UIView, который я хочу скользить из-за UITabBar, чтобы располагаться прямо над ним.

Это не работает.Мой вид не отображается.

- (void)showNotificationBar
{   
    CGRect frame = CGRectMake(0, 500, 320, 32);
    frame.origin.y = CGRectGetMaxY(self.parentViewController.tabBarController.tabBar.frame) - frame.size.height;
    notificationBar.frame = frame;

    [self.parentViewController.tabBarController.tabBar.superview insertSubview:notificationBar 
                                                                  belowSubview:self.parentViewController.tabBarController.tabBar];

    [UIView animateWithDuration:0.5 animations:^{
        CGRect frame = notificationBar.frame;
        frame.origin.y = CGRectGetMaxY(self.parentViewController.tabBarController.tabBar.frame);
        notificationBar.frame = frame;
    }];
}

Ответы [ 3 ]

1 голос
/ 28 ноября 2011

Если вы хотите, чтобы он отображался в каждом представлении, вы можете сделать следующее: либо показать его внизу каждого представления, либо показать в окне приложения.Мне лично больше нравится этот второй подход, потому что он помогает избежать дублирования кода:

CGFloat notificationBarHeight = 40.0f;
UIView *notificationBar = [[UILabel alloc]initWithFrame:CGRectMake(0, self.tabBarController.tabBar.frame.origin.y - notificationBarHeight, 320, notificationBarHeight)];
[self.window insertSubview:notificationBar atIndex:[[self.window subviews]count]];
1 голос
/ 28 ноября 2011

Инициализируйте frame.origin.y следующим образом:

frame.origin.y = self.tabBarController.tabBar.frame.origin.y;

В блоке анимации установите его следующим образом:

frame.origin.y -= frame.size.height;
0 голосов
/ 27 декабря 2011

[self.view insertSubview :tificationView atIndex: 1];работал на меня ...

...