2016-11-02 2 views
1

URL에서 이미지를 가져 와서 버튼에 적용하려고합니다. 웬일인지 처음에는 작동하지 않지만 뷰 컨트롤러를로드하면 이미지가 두 번째로 표시됩니다. 캐시 할 수있는 것처럼 보이지만 나중에 캐시에서 가져 오지만 캐시에서 URL로만 표시 할 수는 없습니다. 이 코드는 Firebase에서 이미지를 가져옵니다.URL의 버튼 이미지가 보이지 않는 경우

DataService.ds.REF_USERS.child(self.loggedInUserId!).observeEventType(.Value, withBlock: { userDictionary in 
    let userDict = userDictionary.value as! NSDictionary 
    let profileThumbUrl = userDict.objectForKey("profileThumbUrl") as! String 
    self.button.imageView!.contentMode = UIViewContentMode.ScaleAspectFill 
    let profileThumbImage = UIImageView() 
    if profileThumbUrl != "" { 
      profileThumbImage.loadImageUsingCacheWithUrlString(profileThumbUrl) 
      self.button.setImage(profileThumbImage.image, forState: .Normal) 
    } else { 
      self.button.setImage(UIImage(named: "defaultUserSmall"), forState: .Normal) 
    } 
}) 

URL에서 이미지를 가져 와서 캐싱하거나 캐시에서로드하는 데 사용하는 기능은 다음과 같습니다. 응용 프로그램에서 다른 위치를 사용하고 잘 작동하지만이 단추를 사용하여 URL에서로드 된 것을 표시하지는 않지만 캐시에서 캐시를 표시합니다.

답변

1

그래,이 문제를 해결할 방법은 이전 뷰 컨트롤러에서 이미지를로드 한 다음 GlobalSingleton으로 보내고 뷰를로드 할 때 준비가되어 있어야합니다. 나는 이것을 할 필요가 없다는 것을 정말로 좋아하지 않는다. 왜냐하면 당신이 항상 이것을 할 수는 없기 때문이다. 그것은 내 경우에 효과가있다. 그래서 나는 누군가가이 질문에 대해 다른 사람들에게 더 좋은 대답을 주길 바란다.

관련 문제