Пользовательское выравнивание UIBarButtonItem отключено с iOS7

Так что у меня возникла та же проблема, с которой сталкиваются многие другие при создании UIBarButtonItem с UIButton в качестве пользовательского представления.

В основном кнопка составляет около 10 пикселей далеко влево или вправо. Когда я использую обычный BarButtonItem без пользовательского представления, этого не происходит.

Этот пост предоставил частичное решение:UIBarButton с пользовательским видом

Вот мой код, который я создал, создав подкласс UIButton (как указано в другом посте)

    - (UIEdgeInsets)alignmentRectInsets {
    UIEdgeInsets insets;
    if ([self isLeftButton]) {
        insets = UIEdgeInsetsMake(0, 9.0f, 0, 0);
    }
    else { // IF ITS A RIGHT BUTTON
        insets = UIEdgeInsetsMake(0, 0, 0, 9.0f);
    }
    return insets;
}


- (BOOL)isLeftButton {
    return self.frame.origin.x < (self.superview.frame.size.width / 2);
}

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

Это ОГРОМНОЕ бельмо на глазу, и я понятия не имею, как помешать этому щелкнуть вот так. есть идеи? Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос