大佬教程收集整理的这篇文章主要介绍了ios – 如果在Swift的TextField中没有输入文本,则使UIButton处于非活动状态,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@IBAction func nextButton(sender: UIButton) { if textField.text.isEmpty { buttonLabel.userInteractionEnabled = false } }
这会根据需要禁用按钮,但问题是,如果文本然后在文本字段中输入,则按钮仍处于禁用状态.我已经尝试在“if”语句之后添加“else”语句来反转我所说的是否有效,但事实并非如此.
任何帮助非常感谢.
缺口
我的代码:
import UIKit class ViewController: UIViewController,UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate { func imageEffect() { // Set vertical effect for background var verticalMotionEffect : UIInterpolatingMotionEffect = UIInterpolatingMotionEffect(keyPath: "center.y",type: .TiltAlongVerticalAxis) verticalMotionEffect.minimumRelativeValue = -20 verticalMotionEffect.maximumRelativeValue = 20 // Set horizontal effect for background var horizontalMotionEffect : UIInterpolatingMotionEffect = UIInterpolatingMotionEffect(keyPath: "center.x",type: .TiltAlongHorizontalAxis) horizontalMotionEffect.minimumRelativeValue = -20 horizontalMotionEffect.maximumRelativeValue = 20 // Create group for background to combine both var group : UIMotionEffectGroup = UIMotionEffectGroup() group.motionEffects = [horizontalMotionEffect,verticalMotionEffect] // Add both effects to your view for background myBackgroundView.addMotionEffect(group) } var datePickerView:UIDatePicker = UIDatePicker() @IBAction func textFieldEdited(sender: UITextField) { var datePickerView : UIDatePicker = UIDatePicker() datePickerView.datePickerMode = UIDatePickerMode.Date sender.inputView = datePickerView datePickerView.addTarget(self,action: Selector("handleDatePicker:"),forControlEvents: UIControlEvents.ValueChanged) } func handleDatePicker(sender: UIDatePicker) { var dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd MMMM yyyy" questionTextField.text = dateFormatter.stringFromDate(sender.date) } var countryData = ["United Kingdom","France","Spain","Germany","Berlin","Eygpt","United States"] var pickerView:UIPickerView = UIPickerView() @IBOutlet var progressStatus: UIProgressView! @IBOutlet var barImage: UIImageView! @IBOutlet var questionLabel: UILabel! @IBOutlet var buttonBarImage: UIImageView! @IBOutlet var buttonLabel: UIButton! @IBOutlet var myBackgroundView: UIImageView! @IBOutlet var questionTextField: UITextField! let questions = ["Where are you going?","What are you doing there?","When do you go?"] var currentQuestionIndex = 0 let placeholder = ["Country","Activity","Date"] var currentPlaceholderIndex = 0 @IBAction func nextButton(sender: AnyObject) { if currentQuestionIndex == 0 { progressStatus.setProgress(0.333,animated: true) } else if currentQuestionIndex == 1 { progressStatus.setProgress(0.666,animated: true) } else { progressStatus.setProgress(1,animated: true) } // Initial setup on button press questionTextField.hidden = false barImage.hidden = false questionTextField.placeholder = placeholder[currentPlaceholderIndex] questionLabel.text = questions[currentQuestionIndex] questionTextField.resignFirstResponder() // Reset text field to have no text questionTextField.text = "" // Displays the questions in array and displays the placeholder text in the textfield if currentQuestionIndex <= questions.count && currentPlaceholderIndex <= placeholder.count { currentQuestionIndex++ currentPlaceholderIndex++ //progressStatus.setProgress(0.333,animated: true) buttonLabel.setTitle("Next",forState: UIControlState.Normal) // Animate text for questionLabel UIView.animateWithDuration(1.0,delay: 0.0,usingSpringWithDamping: 0.9,initialSpringVeLocity: 0.5,options: nil,animations: { self.questionLabel.center = CGPoint(x: -110,y: 305 + 20) },completion: nil) } else { //Add some logic here to run whenever the user has answered all the questions. } } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. questionTextField.delegate = self pickerView.delegate = self pickerView.dataSource = self // Applies the image effect to the image in myBackgroundImage imageEffect() // Sets the button text buttonLabel.setTitle("Get started",forState: UIControlState.Normal) // Sets the question text to be blank questionLabel.text = "" // Sets placeholder text in the text field questionTextField.placeholder = "" // Hides the text field questionTextField.hidden = true // Hides the image background for the text field barImage.hidden = true // Sets the progress bar to nil progressStatus.setProgress(0,animated: true) if questionTextField.text.isEmpty { buttonLabel.userInteractionEnabled = false } } func textFieldDidBeginEditing(textField: UITextField) { buttonLabel.userInteractionEnabled = true switch currentQuestionIndex { case 0: // TODO: Add UIPickerView self.view.addSubview(datePickerView) case 2: // TODO: Add UIDatePicker self.view.addSubview(datePickerView) default: println("default") } } // resigns the keyboard when user presses the return/next key on keyboard func textFieldShouldReturn(textField: UITextField) -> Bool { questionTextField.resignFirstResponder() return true } func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { return 1 } func pickerView(pickerView: UIPickerView,numberOfRowsInComponent component: Int) -> Int { return countryData.count } func pickerView(pickerView: UIPickerView,titleForRow row: Int,forComponent component: Int) -> String! { return countryData[row] } func pickerView(pickerView: UIPickerView,didSelectRow row: Int,inComponent component: Int) { questionTextField.text = countryData[row] pickerView.hidden = true } // Resigns the keyboard if the user presses anywhere on the screen override func touchesBegan(touches: Set<NSObject>,withEvent event: UIEvent) { self.view.endEditing(true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
在viewDidLoad或viewWillAppear中设置myButton.userInteractionEnabled = false.
设置textField的委托.
然后
func textFieldDidBeginEditing(textField: UITextField) { if !textField.text.isEmpty myButton.enable = true } else { buttonLabel.enable = false } }
以上是大佬教程为你收集整理的ios – 如果在Swift的TextField中没有输入文本,则使UIButton处于非活动状态全部内容,希望文章能够帮你解决ios – 如果在Swift的TextField中没有输入文本,则使UIButton处于非活动状态所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。