我想动态加载UIImage
。那些是不同的大小。我尝试做的是在下载图像后重置UIImageView
帧。
let imgVw:UIImageView! = UIImageView.init(frame: CGRectMake(5, self.otherVidY, imgvwWidth, scrollH-10))
imgVw.image=UIImage(named: "NotFound")
self.scroll.addSubview(imgVw)
let vwY = (self.otherVidY+scrollH-10)-30
let view: UIView = UIView.init(frame: CGRectMake(5, vwY, imgvwWidth, 30))
view.backgroundColor=UIColor.blackColor()
self.scroll.addSubview(view)
if let imgURL = NSURL(string: urlString)
{
do {
if let img = imageCache[urlString] {
imgVw.image = img
}
else
{
// The image isn't cached, download the img data
// We should perform this in a background thread
let request: NSURLRequest = NSURLRequest(URL: imgURL)
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue, completionHandler: { (response, data, error) -> Void in
if error == nil {
// Convert the downloaded data in to a UIImage object
let image = UIImage(data: data!)
let resizedImage = self.resizeImage(image!, newWidth: imgVw.frame.size.width, imageView: imgVw)
// Store the image in to our cache
self.imageCache[urlString] = resizedImage
// Update the cell
dispatch_async(dispatch_get_main_queue(), {
imgVw.image = resizedImage
var rect = imgVw.frame
rect.size.height = resizedImage.size.height
imgVw.frame = rect
self.otherVidY = imgVw.frame.origin.y+imgVw.frame.size.height+5
})
}
else {
print("Error: \(error!.localizedDescription)")
}
})
}
}
}
self .otherVidY=imgVw.frame.size.height+imgVw.frame.origin.y+5
self.scroll.contentSize=CGSizeMake(self.screenWidth, self.otherVidY+imgVw.frame.size.height)
}
但是当我设置下一张图像的Y值时,我遇到了问题。它,重叠。如何解决这个问题。请帮我。 感谢
答案 0 :(得分:0)
在这里,你必须处理起源,这只取决于你的逻辑。您可以使用。
object(View).frame.size.origin
它将为您提供视图的X,Y和
view.frame.size.height
& view.frame.size.width
它会给你身高和体重。
然后你需要为你想要的ImageView设置CGRect。