【问题标题】:Swift tutorial foodtracker: tap gesture method not calledSwift 教程 foodtracker:点击手势方法未调用
【发布时间】:2015-12-29 18:16:18
【问题描述】:

我正在玩 Foodtracker 的 Apple swift 教程,并尝试现在用点击手势打开照片库。

//
//  ViewController.swift
//  FoodTracker
//
import UIKit

class ViewController: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    // MARK: Properties

    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var mealPhotoView: UIImageView!

    // MARK: UIImagePickerControllerDelegate
    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        // Dismiss the picker if the user canceled.
        dismissViewControllerAnimated(true, completion: nil)
    }

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        // The info dictionary contains multiple representations of the image, and this uses the original.
        let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage

        // Set photoImageView to display the selected image.
        mealPhotoView.image = selectedImage

        // Dismiss the picker.
        dismissViewControllerAnimated(true, completion: nil)
    }

    // MARK: Actions

    @IBAction func selectImageFromPhotoLibrary(sender: UITapGestureRecognizer) {
        print("selectImage called!")
        // 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

        // Make sure ViewController is notified when the user picks an image.
        imagePickerController.delegate = self

        presentViewController(imagePickerController, animated: true, completion: nil)
    }

    @IBAction func setDefaultLabelText(sender: AnyObject) {
        nameLabel.text = "Default Meal name"

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Handle the user input on textfield through delegate callback (self == this)
        nameTextField.delegate = self
    }

    // MARK: UITextFieldDelegate
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        // Hide the keyboard.
        textField.resignFirstResponder()
        return true
    }

    func textFieldDidEndEditing(textField: UITextField) {
        nameLabel.text = textField.text
    }

}

无论如何,当模拟器启动并且我点击照片时,库视图未显示。我什至看不到我的调试消息。

我已经删除了出口和动作,并通过添加 UIImageView 出口、添加手势识别器、添加手势识别器的动作再次完成了整个过程,但仍然没有发生应有的情况。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    我发现了问题 - 我没有启用默认设置为 false 的用户交互。

    【讨论】:

    • 我还必须禁用“点击手势识别器”的“取消触摸视图”属性,仅识别图像上的点击事件。
    猜你喜欢
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多