我已将我的代码更新为Swift 3,并且无法迁移到Alamofire 4.0.我已经使用Alamofire迁移指南成功完成了大部分必要的修改,但仍然无法获取图像数据.
旧的Swift 2/Alamofire 3代码(按预期工作):
func beginGetImageRequest() {
if let imagePath = thumbPath {
request = Alamofire.request(.GET, imagePath).response(completionHandler: { (_, _, imageData, error) -> Void in
if error != nil {
NSLog("Error downloading thumbnail image: \(error)")
} else {
if let downloadedImage = UIImage(data: imageData!) {
self.imageView.image = downloadedImage
}
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试更新到Alamofire 4:
func beginGetImageRequest() {
if let imagePath = thumbPath {
request = Alamofire.request(imagePath, method: .get, parameters: [:], encoding: JSONEncoding.default)
.validate { …Run Code Online (Sandbox Code Playgroud) 在我的集合视图的每个单元格中都是一个圆形的UIView.这是通过创建UIView我调用的自定义子类CircleView并layer.cornerRadius = self.frame.size.width/2在子类中设置来实现的.awakeFromNib()
我想为每个CircleView添加一个手势识别器.我在集合视图中做了这个cellForItemAtIndexPath:
let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tap(_:)))
cell.circleView.addGestureRecognizer(gestureRecognizer)
Run Code Online (Sandbox Code Playgroud)
问题是,只要在原始方形UIView的边界内的任何地方发生敲击,就会调用手势识别器.我想只识别圆圈内出现的水龙头.
我试图通过以下方式解决此问题:
在CircleView的awakeFromNib()我设置self.clipsToBounds = true(没有效果)
也在CircleView的awakeFromNib()我设置layer.masksToBounds = true(没有效果)
提前感谢您的想法和建议.