我已经将UINavigationBar子类化了。 NavigationBar具有两个UIBarButtonItem类型的按钮。可以移动这些按钮吗?例如,我想将“左按钮”右移50px,将“右按钮”左移50px。
LayoutSubViews是移动这些按钮的正确位置吗?
这是NavigationBar类(在MT中创建):
[MonoTouch.Foundation.Register("NavigationBar")]
public class NavigationBar : UINavigationBar
{
public NavigationBar (IntPtr handle) : base (handle)
{
Initialize ();
}
[Export ("initWithCoder:")]
public NavigationBar (NSCoder coder) : base (coder)
{
Initialize ();
}
public NavigationBar(RectangleF frame, string title) : base (frame)
{
InitializeWithStyleAndTitle(title);
}
void Initialize() { }
void InitializeWithStyleAndTitle(string title)
{
//- title
UINavigationItem navItem = new UINavigationItem(title);
//- left button
UIBarButtonItem leftBarButtonItem = new UIBarButtonItem("back", UIBarButtonItemStyle.Plain, this, new Selector("backAction"));
navItem.LeftBarButtonItem = leftBarButtonItem;
//- right button
UIBarButtonItem rightBarButtonItem = new UIBarButtonItem("update", UIBarButtonItemStyle.Plain, this, new Selector("updateAction"));
navItem.RightBarButtonItem = rightBarButtonItem;
//- style
BarStyle = UIBarStyle.Black;
PushNavigationItem(navItem, false);
}
//- selectors omitted
}
最佳答案
不,UINavigation具有特定的行为,仅向左和向右按钮。如果需要放置按钮,则应改用UIToolbar。在两者之间添加垫片以调整按钮的位置。
关于ios - UINavigationBar-如何更改UIBarButtonItem的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626886/