2016-07-02 11 views
0

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

Antwort

0

Hier müssen Sie sich mit Ursprüngen befassen, und das hängt nur von Ihrer Logik ab. Sie können verwenden.

object(View).frame.size.origin 

es gibt Ihnen die X, Y Sichtweisen und

view.frame.size.height & view.frame.size.width

Es wird Ihnen die Höhe und Gewicht geben.

Dann müssen Sie CGRect für Ihre ImageView, die Sie wollen.

Verwandte Themen