如何在 UIAlertController 中添加 UIPickerView? [英] How to add UIPickerView in UIAlertController?

查看:31
本文介绍了如何在 UIAlertController 中添加 UIPickerView?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能帮助我我不知道要这样做.我有这样的课

Could anyone help me I don't have any idea to do this. I have this class like

import Foundation
import UIKit
class Alert {

    func loginAlert(viewController : UIViewController , callback: (result: Bool) -> ()) {
        var alert = UIAlertController(title : "Compose",
            message : "Fill the following",
            preferredStyle: UIAlertControllerStyle.Alert
        )


        var loginAction = UIAlertAction(title: "Send", style: UIAlertActionStyle.Default){
            UIAlertAction in


        }
        var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel){
            UIAlertAction in

            callback(result: false);
        }
        alert.addAction(loginAction)
        alert.addAction(cancelAction)



        alert.addTextFieldWithConfigurationHandler { (textField) -> Void in
            textField.secureTextEntry = true
            textField.placeholder = "Message"

        }


        viewController.presentViewController(alert, animated: true, completion: nil)

    }

}

我阅读了关于 addTextFieldWithConfigurationHandler 的内容,它似乎仅适用于文本字段,我想知道我怎么能做到这一点.任何人都可以帮助我,任何评论和建议都可以.提前致谢.

I read about addTextFieldWithConfigurationHandler it seems it only just for textfield, I wonder how could I do this. Could anyone help me, any comment and suggestion would do. Thanks in advance.

推荐答案

我需要在 AlertController(控制 NSTimer)中有一个带有取消/开始按钮的弹出式选择器视图.也很有风格.我已经挑选了所有计时器的东西,这是基本的选择器代码,希望它可以帮助某人.

I needed to have a popup pickerView inside an AlertController (controlling an NSTimer) with Cancel/Start buttons. It's stylable too. I've plucked out all the timer stuff, here's the basic picker code, Hope it helps someone.

ps 完整的 monty 弹出一个选择器,它在选定的选择器值上设置一个计时器,并在计时器完成时播放一首曲子.有需要的可以发帖.它为食谱提供计时器/闹钟.

let pickerSet = ["5","10","15","20","30","35","40","45","50","55","60", "65", "70", "75", "80", "85", "90"]
func showPickerInActionSheet() {
    let message = "\n\n\n\n\n\n\n\n"
    let alert = UIAlertController(title: "", message: message, preferredStyle: UIAlertControllerStyle.Alert)
    alert.modalInPopover = true

    let attributedString = NSAttributedString(string: "Set Timer Minutes", attributes: [
        NSFontAttributeName : UIFont.systemFontOfSize(20), //your font here,
        NSForegroundColorAttributeName : UIColor(red:0.29, green:0.45, blue:0.74, alpha:1.0) ])
    alert.setValue(attributedString, forKey: "attributedTitle")

    //Create a frame (placeholder/wrapper) for the picker and then create the picker
    let pickerFrame: CGRect = CGRectMake(35, 52, 200, 140) // CGRectMake(left, top, width, height) - left and top are like margins
    let picker: UIPickerView = UIPickerView(frame: pickerFrame)
    picker.backgroundColor = UIColor(red:0.29, green:0.45, blue:0.74, alpha:1.0)

    //set the pickers datasource and delegate
    picker.delegate = self
    picker.dataSource = self

    //Add the picker to the alert controller
    alert.view.addSubview(picker)

    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
    alert.addAction(cancelAction)

    let okAction = UIAlertAction(title: "Start", style: .Default, handler: {
        (alert: UIAlertAction!) -> Void in self.doSomethingWithValue(Int(self.pickerSet[picker.selectedRowInComponent(0)])!) })
    alert.addAction(okAction)

    viewController.presentViewController(alert, animated: true, completion: nil)
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { return 1 }

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return pickerSet.count }

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return pickerSet[row] }

func pickerView(pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    let titleData = pickerSet[row]
    let myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Verdana", size: 15.0)!,NSForegroundColorAttributeName:UIColor.whiteColor()])
    return myTitle
}


func doSomethingWithValue(value: Int) {
    self.selection = value
}

这篇关于如何在 UIAlertController 中添加 UIPickerView?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆