Расчет размера рамки навигационной панели - PullRequest
0 голосов
/ 16 ноября 2018

Я использую следующие строки для получения размера рамки моей навигационной панели, она работала нормально до версии 11 iOS, но после обновления моей версии iOS до 11 она возвращает мне значение nil как (0, 0).Может кто-нибудь помочь мне с этим вопросом.

CGRect frame = self.superview.frame;

            // Look for the navigation bar.
            UINavigationBar *navigationBar;
            UIView *superView = self;
            while (superView.superview)
            {
                if ([superView.superview isKindOfClass:[UINavigationBar class]])
                {
                    navigationBar = (UINavigationBar*)superView.superview;
                    break;
                }

                superView = superView.superview;
            }

            if (navigationBar)
            {
                CGSize navBarSize = navigationBar.frame.size;
                CGFloat superviewCenterX = frame.origin.x + (frame.size.width / 2);

                // Check whether the view is not moving away (see navigation between view controllers).
                if (superviewCenterX < navBarSize.width)
                {
                    // Center the display name
                    self.displayNameCenterXConstraint.constant = (navBarSize.width / 2) - superviewCenterX;
                }
            }

1 Ответ

0 голосов
/ 16 ноября 2018

Вы никогда не инициализируете навигационную панель, поэтому я предполагаю, что вы пытаетесь получить значение navBarSize, равное нулю.

Если вы используете этот код в контроллере представления, имеющем панель навигации, выможет рассмотреть что-то вроде этого:

UINavigationBar *navigationBar = self.navigationController.navigationBar;
CGSize navBarSize = navigationBar.frame.size;

Если это не соответствует вашим потребностям, я бы рекомендовал добавить дополнительный пример кода / контекста того, что идет не так или что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...