[已解决]swift向toolbar工具栏中添加自定义视图

搜:

swift  add toolbar item

参考:

        let cameraToolbarItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Camera, target: self, action: Selector("showCameraOption"))
        let toolbarItems = [cameraToolbarItem]
        self.setToolbarItems(toolbarItems, animated: true)

效果:

add camera to bottom toolbar

但是,想要把相机按钮:
换成自定义的图片,放到最右边
所以:
要搞清楚,如何定义加入的位置
搜:
最后是:
添加了两个toolbar的item,然后使得照相机,靠最右边显示的:
        //set toolbar item
        print("self.navigationController=\(self.navigationController)") //self.navigationController=Optional(<UINavigationController: 0x7fc044167800>)
        self.navigationController?.setToolbarHidden(false, animated: true)

//        let cameraToolbarItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Camera, target: self, action: Selector("showCameraOption"))
        let cameraToolbarItem = UIBarButtonItem(image: UIImage(named: "toolbar_camera"), style: UIBarButtonItemStyle.Plain, target: self, action:  Selector("showCameraOption"))

        let inputToolbarView = UIView(frame: CGRectMake(
                0,
                0,
                //TODO: adjust according to iPhone screen width
                self.view.frame.width - 60, //iPhone5:260, iPhone:315
                30))
        print("inputToolbarView.frame=\(inputToolbarView.frame)")
        //for debug
        //inputToolbarView.backgroundColor = UIColor.greenColor()

        let smileyRightPadding:CGFloat = 8
        let smileySize:CGFloat = 30

        let inputTextFieldWidth = inputToolbarView.frame.width - smileySize - smileyRightPadding
        print("inputTextFieldWidth=\(inputTextFieldWidth)")
        let inputTextField = UITextField(frame: CGRectMake(
                0,
                0,
                inputTextFieldWidth,
                inputToolbarView.frame.height
            ))
        print("inputTextField.frame=\(inputTextField.frame)")
        inputToolbarView.addSubview(inputTextField)
        inputTextField.borderStyle = UITextBorderStyle.RoundedRect
        //for debug
        //inputTextField.backgroundColor = UIColor.yellowColor()

        let smileyButton:UIButton = UIButton(frame: CGRectMake(
                inputTextFieldWidth,
                0,
                smileySize,
                smileySize))
        smileyButton.addTarget(
            self,
            action:Selector("toggleEmoji"),
            forControlEvents:UIControlEvents.TouchUpInside)
        smileyButton.setImage(UIImage(named: "toobar_smiley"),forState:UIControlState.Normal)
        inputToolbarView.addSubview(smileyButton)
        //for debug
        //smileyButton.backgroundColor = UIColor.purpleColor()

        let inputToolbarItem = UIBarButtonItem(customView: inputToolbarView)

        let toolbarItems = [inputToolbarItem, cameraToolbarItem]
        self.setToolbarItems(toolbarItems, animated: true)

效果:

bottom bar add camera effect
抽空再去参考:
想办法左对齐或右对齐
的:
UIBarButtonSystemItem的FlexibleSpace和FixedSpace搭配使用,估计就可以了。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量