[英]Xcode error when using tap gesture recognizer
我開始關注Apple提供的Swift教程。 使用點擊手勢識別器的一步。 點擊圖像時,應鏈接到照相館。 但是,將顯示以下消息:
我使用了官方答案的示例代碼,並且彈出了相同的問題。 所以我想這不是代碼問題嗎?
試試這個
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
tap.delegate = self
myView.addGestureRecognizer(tap)
然后,您應該實現處理程序,該處理程序將在每次tap事件發生時調用:
func handleTap(sender: UITapGestureRecognizer? = nil) {
// handling code
}
因此,現在調用輕handleTap()
手勢識別器事件處理程序就像調用方法handleTap()
一樣簡單。
不確定,但是錯誤是否是由於點擊手勢引起的。 您可以嘗試:
let enableTap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
view.addGestureRecognizer(enableTap)
view.userInteractionEnabled = true
func handleTap(_ sender: UITapGestureRecognizer) {
print("Success!!!")
}
導入UIKit
ViewController類:UIViewController,UITextFieldDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
// MARK: Properties
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var mealNameLabel: UILabel!
@IBOutlet weak var photoImageView: UIImageView!
override func viewDidLoad()
{
super.viewDidLoad()
// Handle the text field’s user input through delegate callbacks.
nameTextField.delegate = self
}
/*override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} */
// MARK: UITextFieldDelegate
func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
// Hide the keyboard.
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(_ textField: UITextField)
{
mealNameLabel.text = textField.text
}
// MARK: UIImagePickerControllerDelegate
func imagePickerControllerDidCancel(_ picker: UIImagePickerController)
{
// Dismiss the picker if the user canceled.
dismiss(animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
// The info dictionary may contain multiple representations of the image. You want to use the original.
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
else
{
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
// Set photoImageView to display the selected image.
photoImageView.image = selectedImage
// Dismiss the picker
dismiss(animated: true, completion: nil)
}
// MARK: Actions
@IBAction func setDefaultLabelText(_ sender: UIButton)
{
mealNameLabel.text = "Default Text"
}
@IBAction func selectImageFromPhotoLibrary(_ sender: Any)
{
// Hide the keyboard
nameTextField.resignFirstResponder()
// UIImagePickerController is a view controller that lets a user pick media from their photo library.
let imagePickerController = UIImagePickerController()
// Only allow photos to be picked, not taken.
imagePickerController.sourceType = .photoLibrary
// The type of imagePickerController.sourceType is known to be UIImagePickerControllerSourceType, which is an enumeration. This means you can write its value as the abbreviated form .photoLibrary instead of UIImagePickerControllerSourceType.photoLibrary.
// Make sure ViewController is notified when the user picks an image.
imagePickerController.delegate = self
present(imagePickerController, animated: true, completion: nil)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.