UIToolbar中心UIBarButtonItem垂直

时间:2014-04-30 14:09:56

标签: iphone xamarin.ios uitoolbar

我正在开发一个Monotouch项目,我已经使用CameraOverlayView设计了UIImagePickerController。 在底部我有一个UIToolBar,在iPhone5上工具栏很大。这里的相机按钮是垂直的中心,但我的取消按钮不是。 enter image description here

我可以做些什么来集中它? 创建它的代码是:

        mCameraToolbar = new UIToolbar();

        UIBarButtonItem cancel = new UIBarButtonItem(UIBarButtonSystemItem.Cancel);
        cancel.Clicked += delegate(object sender, EventArgs e)
        {
            mPicker.DismissViewController(true, null);
            if(mImgView.Image == null)
                NavigationController.PopViewControllerAnimated(true);
        };
        UIBarButtonItem camera = new UIBarButtonItem(UIBarButtonSystemItem.Camera);
        camera.Clicked += delegate(object sender, EventArgs e)
        {
            mPicker.TakePicture();
        };
        mCameraToolbar.SetItems(new UIBarButtonItem[]{ 
            cancel, 
            new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), 
            camera, 
            new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), 
            new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace) 
        }, true);

2 个答案:

答案 0 :(得分:0)

我认为使用简单的UIBarButtonItem是不可能的。但您可以尝试将视图添加为容器。您只需在创建新的UIBarButtonItem时传递UIView:

UIView containerView = new UIView();
containerView.Frame = new RectangleF(0f,0f,150f,YOUR_TOOLBAR_HEIGHT);
UIButton buttonAnuller = new UIButton();
buttonAn.SetTitle("Annuler",UIControlState.Normal);
buttonAn.Bounds = new RectangleF(0f,0f,150f,30f);
buttonAn.Center=new PointF(containerView.Frame.Width/2,containerView.Frame.Height/2);
containerView.Add(buttonAn);
UIBarButtonItem itemWithView = new UIBarButtonItem(containerView);

在此代码中剪切了一个containerView。之后创建一个Button,添加到containerView。最后一步是仅使用容器作为参数创建新的UIBarButtonItem。

答案 1 :(得分:-1)

我没有想出如何驯服工具栏,而是建议不用它,你可以通过自定义视图轻松获得结果,里面有两个按钮。

PS:不要使用匿名代表。否则你的代码会泄漏内存。