导入文本和图像 swift 地图套件
Importing text and images swift Map Kit
我正在尝试获取特定的图像和文本文件,以根据我的地图视图中 selected 的哪个图钉嵌入到我的第二个视图控制器中。目前我的头衔正在通过 segue 转移。我的想法是将文本文件和图像命名为与标题相同的名称,以便在找到标题时正确地 selected。
EG:标题 = 大本钟:标题 = "big ben" 因此 select 图片 title.png 和 title.txt
但是我在实现这个时遇到了麻烦,因为我不确定如何告诉 swift 到 select 资产文件夹中的图像和文本文件。
我目前有 segue 并准备 segue 实施为:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
if control == view.rightCalloutAccessoryView {
if let artworkPin = view.annotation as? Artwork {
performSegue(withIdentifier: "no", sender: artworkPin)
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let identifier = segue.identifier {
if identifier == "no" {
if let artworkPin = sender as? Artwork {
let ViewTwo = segue.destination as! ViewTwo
ViewTwo.artworkPin = artworkPin
}
}
}
}
}
我的第二个观点 class 是:
@IBOutlet weak var art_image: UIImageView!
@IBOutlet weak var art_desc: UITextView!
@IBOutlet weak var art_title: UILabel!
var artworkPin: Artwork!
override func viewDidLoad() {
super.viewDidLoad()
art_title.text = artworkPin.title
}
如何让 swift 从 assets 文件夹中提取?
我在下面附上了我的完整代码:
ViewControllerOne
在 XCAssets 中存储非图像文件时,您应该使用 NSDataAsset 来访问它们的内容
参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSDataAsset_Class/
func readBundle(file:String) -> String
{
var res = ""
if let asset = NSDataAsset(name: file) , let string = String(data:asset.data, encoding: String.Encoding.utf8){
res = string
}
return res
}
在第二个视图控制器中加载图像
@IBOutlet weak var art_image: UIImageView!
@IBOutlet weak var art_desc: UITextView!
@IBOutlet weak var art_title: UILabel!
var artworkPin: Artwork!
override func viewDidLoad() {
super.viewDidLoad()
art_title.text = readBundle(artworkPin.title)
art_image.image = UIImage(named:"PinSample")
}
注意 : 资源图片名称和代码中的名称应该相同
我正在尝试获取特定的图像和文本文件,以根据我的地图视图中 selected 的哪个图钉嵌入到我的第二个视图控制器中。目前我的头衔正在通过 segue 转移。我的想法是将文本文件和图像命名为与标题相同的名称,以便在找到标题时正确地 selected。
EG:标题 = 大本钟:标题 = "big ben" 因此 select 图片 title.png 和 title.txt 但是我在实现这个时遇到了麻烦,因为我不确定如何告诉 swift 到 select 资产文件夹中的图像和文本文件。
我目前有 segue 并准备 segue 实施为:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
if control == view.rightCalloutAccessoryView {
if let artworkPin = view.annotation as? Artwork {
performSegue(withIdentifier: "no", sender: artworkPin)
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let identifier = segue.identifier {
if identifier == "no" {
if let artworkPin = sender as? Artwork {
let ViewTwo = segue.destination as! ViewTwo
ViewTwo.artworkPin = artworkPin
}
}
}
}
}
我的第二个观点 class 是:
@IBOutlet weak var art_image: UIImageView!
@IBOutlet weak var art_desc: UITextView!
@IBOutlet weak var art_title: UILabel!
var artworkPin: Artwork!
override func viewDidLoad() {
super.viewDidLoad()
art_title.text = artworkPin.title
}
如何让 swift 从 assets 文件夹中提取? 我在下面附上了我的完整代码: ViewControllerOne
在 XCAssets 中存储非图像文件时,您应该使用 NSDataAsset 来访问它们的内容
参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSDataAsset_Class/
func readBundle(file:String) -> String
{
var res = ""
if let asset = NSDataAsset(name: file) , let string = String(data:asset.data, encoding: String.Encoding.utf8){
res = string
}
return res
}
在第二个视图控制器中加载图像
@IBOutlet weak var art_image: UIImageView!
@IBOutlet weak var art_desc: UITextView!
@IBOutlet weak var art_title: UILabel!
var artworkPin: Artwork!
override func viewDidLoad() {
super.viewDidLoad()
art_title.text = readBundle(artworkPin.title)
art_image.image = UIImage(named:"PinSample")
}
注意 : 资源图片名称和代码中的名称应该相同