我正在UIImageView以UIScrollView编程方式添加并在imageView上添加点击手势.它恰好识别了4次点击事件,并且在第四次崩溃时没有任何明确的错误消息.这是在名为FeaturedListingDetailVC的控制器中
码:
let frame = CGRect(x: 0, y: 0, width: 128, height: 128)
_iv = UIImageView(frame: frame)
_iv.image = UIImage(named: "no_media")
_iv.userInteractionEnabled = true
tapGesture = UITapGestureRecognizer(target: self, action: #selector(initImagePopup(_:)))
_iv.addGestureRecognizer(tapGesture)
_iv.widthAnchor.constraintEqualToConstant(CGFloat.init(128)).active = true
_iv.heightAnchor.constraintEqualToConstant(CGFloat.init(128)).active = true
hrScroll.addSubview(_iv)
Run Code Online (Sandbox Code Playgroud)
在Tap上调用的函数:
@objc func initImagePopup(gesture: UITapGestureRecognizer) {
print("I am tapped!!!")
}
Run Code Online (Sandbox Code Playgroud)
此外,我加载目标viewController (即FeaturedListingDetailVC)的方式确实很重要,但我不知道为什么以及如何.因为当我将目标viewController推入时UINavigationViewController,它会在第一次点击时崩溃,否则当我通过showviewController初始化目标VC时,它会在第4次点击时崩溃.
使用以下代码初始化时第一次点击时崩溃:
let storyboard = UIStoryboard(name: "Post", bundle: nil)
let featuredVC = storyboard.instantiateViewControllerWithIdentifier("FeaturedListingDetailVC") as! FeaturedListingDetailVC
self.vc?.navigationController!.pushViewController(featuredVC, animated: true)
Run Code Online (Sandbox Code Playgroud)
使用以下代码初始化时,第4次崩溃时崩溃:
let storyboard = …Run Code Online (Sandbox Code Playgroud) 我正在以UIView编程方式在静态方法中创建一个,并希望添加UITapGestureRecognizer它将在我的Helper类中调用另一个静态方法。
Helper.swift:
static func showLoadingPopUp(frame: CGRect) -> UIView {
let transView = UIView.init(frame: frame!)
let tapGesture = UITapGestureRecognizer(target: self, action: "transViewTapped:")
transView.addGestureRecognizer(tapGesture)
return transView
}
static func transViewTapped(gesture: UITapGestureRecognizer) {
print("Oh Tapped!!!")
}
Run Code Online (Sandbox Code Playgroud)
但它最终得到以下消息,可能是因为我的方法的静态性质。也是Helper.swift简单的 swift 类(不是UIView或UIViewController)
错误:
无法识别的选择器 +[JaClassified.Helper transViewTapped:]
我试图转换UIImage成PHAsset但找不到任何解决方案.所有我发现是反之亦然(即PHAsset到UIImage).
方案是,我从自定义目录中取出图像PHAssetCollection并显示在其中UICollectionView.我还希望在前面的屏幕中包含更多来自远程源的图像.我不想将远程图像保存到我的目录中,但希望将它们包含在我的目录中UICollectionView.
请建议我解决方案或一些好的替代方案,以便UICollectionView相同的来源(即PHAssetCollection)