Итак, у меня такая же проблема, что многие другие испытывают при создании 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 секунды, а затем она вставляется в нужную вставку.
Это ОГРОМНОЕ бельмо на глазу, и я понятия не имею, как остановить его от щелчка. Есть предположения? Спасибо!