Как исправить анимирование панели навигации в сторону после нажатия ВК? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть приложение для iOS, в котором я создаю пользовательский вид для элемента навигации.Элемент навигации работает отлично и размещается правильно каждый раз, когда я подхожу к экрану.

enter image description here Однако, когда VC выталкивается с этого экрана, и я возвращаюсь к экрануэлемент навигации на мгновение появляется в нужном месте, но сразу же перемещается в правый угол.

enter image description here

Я подозреваю, что это связано с анимациейпанели навигации во время перехода, но даже после нескольких попыток обойти это все же происходит.Ниже приведен код для представления элемента навигации.

 UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
    v.backgroundColor = [UIColor clearColor];
    v.opaque = NO;

    UILabel *subtitleLabel = [[UILabel alloc] initWithFrame:CGRectIntegral(CGRectMake(v.bounds.origin.x, v.bounds.origin.y + v.bounds.size.height * 0.6, v.bounds.size.width, v.bounds.size.height * 0.3))];
    subtitleLabel.text = subtitle;
    subtitleLabel.font = [UIFont systemFontOfSize:11];//Font adjusted to accomodate text into size
    subtitleLabel.backgroundColor = [UIColor clearColor];
    subtitleLabel.opaque = NO;
    subtitleLabel.textAlignment = NSTextAlignmentCenter;
    subtitleLabel.textColor = defaultSubtitleTextColor;
    subtitleLabel.shadowOffset = defaultShadowOffset;
    subtitleLabel.shadowColor = defaultShadowColor;

    [v addSubview:subtitleLabel];


    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectIntegral(CGRectMake(v.bounds.origin.x, v.bounds.origin.y + v.bounds.size.height * 0.1, v.bounds.size.width, v.bounds.size.height * 0.5))];
    titleLabel.text = title;
    titleLabel.font = [UIFont boldSystemFontOfSize:19];
    titleLabel.backgroundColor = [UIColor clearColor];
    titleLabel.opaque = NO;
    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.textColor = defaultTextColor;
    titleLabel.shadowOffset = defaultShadowOffset;
    titleLabel.shadowColor = defaultShadowColor;

    [v addSubview:titleLabel];

    navItem.titleView = v;

Уже потрачено много времени на это, любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 01 июля 2019

Для всех, кто находится в подобной ситуации, это было связано с intrinsicContentSize. После настройки вернуть UILayoutFittingExpandedSize. Вопрос исчез.

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