【发布时间】:2016-03-30 21:04:38
【问题描述】:
场景是我在滚动视图中添加了图像视图,然后在每个图像视图上添加了点击手势,但只有第一个图像视图触发事件。
试过以下:
1.创建了 imageview 的扩展
extension UIImageView {
public func openMenu() {
let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:Selector("handleTapGesture:"))
//mImg.addGestureRecognizer()
self.addGestureRecognizer(tapGestureRecognizer)
print("open")
}
}
2。在循环中添加了点击手势(在滚动视图上添加图像视图的方式与添加点击手势的方式相同)
//the loop go till all images will load
for var index = 0; index < imagesName.count; index++ {
let mImg: UIImageView = UIImageView()
let pDict = homePageProductArr[index] as NSDictionary
//Create a UIVIEW
let containerView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: 80, height: 100))
let nameLabel:UILabel = UILabel(frame:CGRect(x: xOffset+20, y: 85, width: 100, height: 20))
nameLabel.text = (pDict.objectForKey("CategoryName") as! String)
nameLabel.font = UIFont(name: "Helvetica Neue", size: 10.0)
containerView.addSubview(nameLabel)
let tapMenuCategoryImageTGR = UITapGestureRecognizer(target: self, action: Selector("handleTapGesture:"))
containerView.addGestureRecognizer(tapMenuCategoryImageTGR)
// make the imageview object because in scrollview we need image
mImg.frame = CGRectMake(5 + xOffset, 0, 80, 80)
// the offset represent the values, used so that topleft for each image will
// change with(5+xOffset, 0)and the bottomright(160, 110)
//mImg.image = UIImage(named: imagesName[index])
mImg.imageFromUrl(imagesName[index])
//mImg.imageFromServerURL(imagesName[index])
//Creating Circular Image
//mImg.layer.borderWidth = 1
mImg.layer.masksToBounds = true
mImg.layer.borderColor = UIColor.whiteColor().CGColor
mImg.layer.cornerRadius = mImg.frame.height/2
mImg.clipsToBounds = false
mImg.openMenu()
mImg.userInteractionEnabled = true
mImg.addGestureRecognizer = tapMenuCategoryImageTGR
// The image will put on the img object
images.insert(mImg, atIndex: index)
//Put the img object at the images array which is mutable array
scrollview.contentSize = CGSizeMake(120 + xOffset, 110)
//scroll view size show after 125 width the scroll view enabled
scrollview.addSubview(images[index] as! UIView)
//set images on scroll view
xOffset += 100
}
欢迎分享你的建议。
【问题讨论】:
-
您是否尝试在 for 之前初始化 tapMenuCategoryImageTGR ?
标签: ios swift uiimageview uitapgesturerecognizer