So habe ich das gleiche Problem, das viele andere beim Erstellen eines UIBarButtonItem mit einem UIButton als benutzerdefinierte Ansicht auftreten.Benutzerdefinierte UIBarButtonItem-Ausrichtung aus mit iOS7
Grundsätzlich ist die Schaltfläche etwa 10 Pixel zu weit links oder rechts. Wenn ich ein reguläres BarButtonItem ohne eine benutzerdefinierte Ansicht verwende, geschieht das nicht.
bereitgestellt Dieser Beitrag eine Teillösung: UIBarButton With Custom View
Hier ist mein Code, den ich von Subklassen UIButton erstellt haben (wie im anderen Beitrag erwähnt)
- (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);
}
Dies funktioniert gut, aber wenn ich Pop ein View-Controller vom Navigations-Controller zurück zu dieser Hauptansicht, der Button ist für ca. 0,3 Sekunden immer noch falsch positioniert, und dann rastet er in den korrekten Inset ein.
Dies ist ein großer Schandfleck und ich habe keine Ahnung, wie man es davon abhält, so zu schnappen. Irgendwelche Gedanken? Vielen Dank!
Ich denke, das ist die beste Lösung, besser als UIEdegeInset ändern, das hat kein Gewindebereich Problem – Nick
Sehr gut! Das hat mein Problem auch gelöst! – rockstarberlin
Perfekte Lösung. Wenn ich könnte, würde ich es 10 Mal upvote. – kufi