ios - UINavigationBar-如何更改UIBarButtonItem的位置?

标签 ios xamarin.ios positioning uinavigationbar uibarbuttonitem

我已经将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/

相关文章:

ios - App/iOS 因 “Terminating in response to backboardd' s 终止而崩溃”

iphone - 使用此代码从iCloud备份中排除文件后,为什么我的应用程序仍然被拒绝?

ios - 将 Swift 添加到项目中会显着增加大小。如何以及何时可以避免

c# - 如何将 UIActivityViewController 与 MonoTouch 一起使用

c# - Xamarin iOS : Starting timer crashes app with no exception

html - CSS 定位不起作用

Html & Css - 改变重力

html - 页脚~定位//扭曲

ios - 在 ios 上旋转时更改 subview

ios - PFSignupViewController 可选电子邮件