Так что у меня такая же проблема, что и многие другие возникают при создании UIBarButtonItem с UIButton как пользовательский вид.Пользовательский UIBarButtonItem выравнивание с iOS7
В основном кнопка составляет около 10 пикселов, далеко или слева или справа. Когда я использую обычный BarButtonItem без пользовательского представления, этого не происходит.
Это сообщение при условии, частичное решение: UIBarButton With Custom View
Вот мой код, который я создал с помощью подклассов 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 секунды, а затем она привязывается к правильной вставке.
Это ОГРОМНОЕ бельмо на глазу, и я не знаю, как остановить его от щелчка. Есть предположения? Благодаря!
Я думаю, что это лучшее решение, лучше, чем изменение UIEdegeInset, это не имеет проблемы с зоной. – Nick
Очень хорошо! Это тоже решило мою проблему! – rockstarberlin
Идеальное решение. Если бы я мог, я бы его повысил 10 раз. – kufi