Ich möchte UIImage
dynamisch laden. und diese sind in verschiedenen Größen. Was ich versuchte es zu tun, setze meinen UIImageView
Rahmen nach dem Herunterladen des Bildes zurück.Erstellen von dynamischen Höhe UIImageViews programmgesteuert in Swift
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)
}
aber ich habe ein Problem, wenn ich den Y-Wert des nächsten Bildes einstellen. Seine, überlappend. Wie man dieses Problem löst. Bitte hilf mir. Danke