2016-11-09 10 views
1

기본 테이블 뷰 셀에 다른 이미지를로드하고 이미지가로드되는 동안 셀에 활동 표시기를 표시하려고합니다. 샘플 코드와 같은 별도의 셀 파일을 사용하고 있습니다. 어디서 구문을 정확히 정확히 모르는지 코드를 어디에 두는 지 알 것입니다. 보기에 코드를 넣을 수있는 몇 가지 방법을 발견했지만 특별히 셀에는 넣지 않았습니다. 누구나 아이디어가 있으십니까? 감사. 당신은 아래와 같이 할 수테이블 뷰 셀에 활동 표시기 표시

func configureCell(favorite: Article) { 
    self.favorite = favorite 

    downloadImage(NSURL(string: self.favorite.mainImage)!) 

func downloadImage(url: NSURL, type: String) { 
    getDataFromUrl(url) { (data, response, error) in 
     //show activity indicator 
     dispatch_async(dispatch_get_main_queue()) {() -> Void in 
      guard let data = data where error == nil else { return } 
       self.mainImage.image = UIImage(data: data) 
     } 
    } 
} 

func getDataFromUrl(url: NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError?) -> Void)) { 

    NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in 
     completion(data: data, response: response, error: error) 
    }.resume() 

} 

답변

2

, 당신은 당신의 필요 조건에 따라, frame을 수정할 수 있습니다, 그것은 당신을 위해 작동하는지 알려주세요.

func downloadImage(url: NSURL, type: String) { 
    let activityIndicator = UIActivityIndicatorView() 
    activityIndicator.frame = slef.mainImage.bounds 

    getDataFromUrl(url) { (data, response, error) in 
     //show activity indicator 
     self.mainImage.addSubview(activityIndicator) 
     activityIndicator.startAnimating() 
     dispatch_async(dispatch_get_main_queue()) {() -> Void in 
      guard let data = data where error == nil else { return } 
      activityIndicator.stopAnimating() 
      activityIndicator.removeFromSuperview() 
      self.mainImage.image = UIImage(data: data) 
     } 
    } 
} 
+0

빠른 답장을 보내 주셔서 감사합니다. 꽤 중심에 위치하지는 않았지만 오른쪽으로 내려 가면 나타납니다. 또한 getDataFromUrl 함수 위에 self.mainImage.addSubview (activityIndicator) 및 activityIndicator.startAnimating()을 이동해야했습니다. – user3712837

+0

정확히 어떻게 중심에 놓을 수 없습니까? 나는 이것을 시도했지만 정확하지는 않다 : activityIndicator.frame = CGRect (x : 0, y : 0, width : self.mainImage.bounds.width/2, height : self.mainImage.bounds.height/2) – user3712837

+0

귀하의 x, y 위치가 정확하지 않은 경우 수퍼 뷰와 관련하여 센터를 배치해야합니다 – Santosh