我是iOS编程的新手,并试图开发" FoodTracker"在Swift tutorial。以下是我的所有代码。
import UIKit
class 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()
// Do any additional setup after loading the view, typically from a nib.
nameTextField.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: Actions
@IBAction func selectImageFromPhotoLibrary(sender: UITapGestureRecognizer) {
// 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: UIButton) {
mealNameLabel.text = "Default Text"
}
//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
photoImageView.image = selectedImage
// Dismiss the picker.
dismissViewControllerAnimated(true, completion: nil)
}
//MARK: UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
//hide the keyboard.
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(textField: UITextField) {
mealNameLabel.text = textField.text
}
}
应用程序正常执行但图像无法更改。 正常的过程是点击图片>从相机胶卷中选择任何图像>改变空闲屏幕的图像。问题是最后一步,"改变空闲屏幕的图像。" 哪一点是我的错?我一次又一次地将我的代码与教程中的示例代码进行了比较,但我找不到有用的东西。请帮帮我。
答案 0 :(得分:0)
2件事: 首先声明
from Tkinter import *
def start():
#something
save_place = save_location.get()
website_url = url.get()
print save_place,website_url
app = Tk()
top_app = Frame(app)
top_app.pack()
save_location = Entry(top_app, width=20)
url = Entry(top_app, width=20)
save_location.grid(sticky=W, row=0)
url.grid(sticky=W, row=1)
button_start = Button(top_app, text="Start", fg="green", command=start)
button_start.grid(sticky=W, row=2, pady=20)
app.mainloop()
作为实例变量,然后在viewdidload
中将其委托给selflet imagePicker = UIImagePickerController();
这样它只设置一次(而不是为每个func调用重置)
其次我建议使用:
override func viewDidLoad() {
super.viewDidLoad();
imagePicker.delegate=self;
}
而不是(didFinishPickingMediaWithinfo ...),它完全取决于拾取图像,就像你需要的那样,你不需要施法。
这是一个简化的例子:
希望有所帮助
答案 1 :(得分:0)
Finnaly,我找到了解决方案。但这并不重要。 问题是语言版本。我使用了XCode 6.4和Swift 1.2。 但主页使用了XCode 7.0 beta和Swift 2.0。 这就是我的问题的原因。现在,一切正常。 感谢所有响应者。
答案 2 :(得分:-1)
你看过selectedImage变量吗?它没有?设置selectedImage后尝试将断点设置为行。