如何从图像滑块获取图像的ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从图像滑块获取图像的ID相关的知识,希望对你有一定的参考价值。
我的项目上有一个图像滑块。我想点击它时得到图像的ID。我做到了这一点。
为了获得id,我创建了一个动作按钮 -
@IBAction func onTapGetBannerId(_ sender: Any) {
// var bannersArray = [BannersHome]() //banner array contain image and it's id
for items in bannersArray {
print(items.banner_id)
}
// print(bannersArray[0].banner_id)
}
在点击图像我得到所有的ID。不是我点击的那个图像的特定ID,我知道为什么我得到这个,但我想要特定的图像ID,我点了 -
这是我的其余代码 -
func setBannerImages(_ bannerArray: [BannersHome]) {
totalFirstCount = bannerArray.count
if totalFirstCount == 1 {
// bannerImage.yy_imageURL = URL(string: bannerArray[0].banner_image)
bannerImage.kf.setImage(with: URL(string: bannerArray[0].banner_image))
print("banner id------------(bannerArray[0].banner_id)")
}
else if !isFirstStarted && (totalFirstCount > 1) {
isFirstStarted = true
totalFirstCount = 0
self.perform(#selector(self.setImage), with: bannerArray, afterDelay: 0.3)
}
}
func setImage(_ thumbArray: [BannersHome]) {
if currentFirst == thumbArray.count {
currentFirst = 0
}
let transition = CATransition()
transition.duration = 0.4
transition.type = kCATransitionFade
bannerImage.layer.add(transition, forKey: kCATransition)
bannerImage.kf.setImage(with: URL(string: thumbArray[currentFirst].banner_image))
// bannerImage.yy_imageURL = URL(string: thumbArray[currentFirst].banner_image)
currentFirst += 1
self.perform(#selector(self.setImage), with: thumbArray, afterDelay: 2.0)
}
我的模特 -
class BannersHome: NSObject {
var banner_image:String!
var banner_id:String!
init(BannersHome: NSDictionary) {
self.banner_image = BannersHome["banner_image"] as? String
self.banner_id = String(BannersHome["banner_id"] as! NSInteger)
}
}
我想得到我拍摄的图像的ID。我怎么能做到这一点?谢谢。
答案
您可以使用视图的tag
属性
设置标签
bannerImage.tag = currentFirst
然后在onTapGetBannerId
获取发件人的标签
let imageView = sender as! UIImageView
// Do what you have to with the index
let index = imageView.tag
另一答案
将onTapGetBannerId发件人类型更改为UITapGestureRecognizer,并获取tapped imageView及其图像。然后,您可以通过比较图像来获取选定的BannersHome对象。然后,您可以获取所选BannersHome对象的ID。
我猜你有结构
struct BannersHome {
var id: String
var image: UIImage
var banner_image:String! {
didSet {
if let url = URL(string: banner_image), let data = try? Data(contentsOf: url), let image = UIImage(data: data) {
self.image = image
}
}
}
}
更改onTapGetBannerId方法如下
@IBAction func onTapGetBannerId(_ sender: UITapGestureRecognizer) {
if let imgView = sender.view as? UIImageView, let image = imgView.image {
if let selectedId = bannersArray.first(where: { $0.image.isEqual(image) })?.id {
print(selectedId)
}
}
}
以上是关于如何从图像滑块获取图像的ID的主要内容,如果未能解决你的问题,请参考以下文章