ios - PickerView 上的 UIBarButton 不起作用

标签 ios iphone xcode swift

我想要做的是从栏按钮获取一个 Action evnet。一开始,我将栏工具上的栏按钮放在pickerview上。按钮显示在选择器 View 上,但我无法按下按钮。按钮的颜色根本没有改变。这意味着我无法触摸按钮。即使在按钮区域,选择器 View 也可以滚动。按钮似乎位于 pickerview 下方。 一旦我直接在 View 上添加带有 slef.view.adSubView 的工具栏,我就可以按下工具栏按钮并获取操作。我想从选择器 View 上的栏按钮获取操作。这次我不在主 Storyboard上使用这些 UI。

var pickerView1: UIPickerView = UIPickerView()
var toolBar1 = UIToolbar()
var barButton1 = UIBarButtonItem()
let strData: [String] = ["abc","xyz"]

override func viewDidLoad() {
    super.viewDidLoad()

    // init bar button
    barButton1 = UIBarButtonItem(title: "PUSH", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("pushBarButton:"))
    barButton1.enabled = true
    // init tool bar
    toolBar1.barStyle = UIBarStyle.Default
    toolBar1.translucent = true
    toolBar1.userInteractionEnabled = true
    toolBar1.sizeToFit()
    toolBar1.delegate = self
    // init picker
    pickerView1.delegate = self
    pickerView1.frame = CGRectMake(0.0, (self.view.bounds.height/3)*2, self.view.bounds.width , self.view.bounds.height / 3.0 )

    // add button on tool bar
    toolBar1.setItems([barButton1], animated: true)
    // add tool bar on picker
    pickerView1.addSubview(toolBar1)
    // add picker on view
    self.view.addSubview(pickerView1)
}

func pushBarButton( sender: AnyObject){
    pickerView1.hidden = true
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
   return strData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return strData[row]
}

我使用 Xcode 7.1。

最佳答案

第一次无法按下按钮可能是由于在 xib 中未选择 UserInteractionEnabled

无论如何,请尝试以编程方式添加:

barButton1 = UIBarButtonItem(标题:"PUSH",style:UIBarButtonItemStyle.Plain,target:self,action:Selector("pushBarButton"))

func PushBarButton(){ pickerView1.hidden = true }

关于ios - PickerView 上的 UIBarButton 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34484989/

相关文章:

ios - 我可以使用个人Apple开发者帐户为客户创建iOS应用程序吗?

带有图像的 iOS 推送/本地通知,如 iMessage 中的图像

iphone - 如何在Mac上卸载iPhone开发sdk

ios - Xcode Swift 以编程方式将 UITextfield X 位置设置为中心

ios - 没有调用 Swift Delegate 来关闭 UIViewController

ios - 使用 AVPlayer 流式传输音频

objective-c - 为 iPhone 应用程序保存高分

ios - 移动网站无法在 IOS 11+ 上运行

iphone - 如何复制此用户界面设计?

ios - 在 iOS 中以后台模式将数据从 Central 传输到外围设备