Swift:刷新UIImageView图像

时间:2015-01-16 22:48:05

标签: swift uiimageview uiimage

我的一半窗口是UITableView,另一半是PageViewController

在我的PageViewController中,我有两个属性:

@IBOutlet weak var displayImageView: UIImageView!
var displayImage : UIImage?

PageViewController viewDidLoad我指定:

   override func viewDidLoad() {
        super.viewDidLoad()
        self.displayImageView.image = self.displayImage
   }

displayImageView是与outlet中我的场景相关联的Storyboard。当User点击不同的单元格时,我希望displayImageView中的图像发生变化。

在显示parentViewControllertableView的{​​{1}}中,我在PageViewController

中调用以下方法
didSelectRowAtIndexPath

这里是func getDisplayImageForSelectedRow() { var row = self.tableView.indexPathForSelectedRow()?.row //DisplayImageVC is a contentViewController that is loaded by pageViewController var displayImageVC = self._pageContent[1] as DisplayImageVC displayImageVC.displayImage = self._displayImage[row!] as UIImage println(displayImageVC.displayImage) if (self.isPageViewVisible){ displayImageVC.displayImageView.reloadInputViews() displayImageVC.displayImageView.setNeedsDisplay() } } 的日志:

println()

根据日志,我假设正在分配一个新图像;但是,You selected cell #0 Optional(<UIImage: 0x7c21c2e0>) You selected cell #1 Optional(<UIImage: 0x7c21c5a0>) You selected cell #2 Optional(<UIImage: 0x7c21cd00>) You selected cell #3 Optional(<UIImage: 0x7c21cff0>) You selected cell #4 Optional(<UIImage: 0x7c21d2d0>) 出口继续显示第一次加载pageViewController时加载的相同图像。

正如您在代码中可能已经注意到的那样,我已经尝试了以下代码来使UIImageView刷新,但无济于事:

UIImageView

如何让displayImageVC.displayImageView.reloadInputViews() displayImageVC.displayImageView.setNeedsDisplay() 显示已加载的新图像?

1 个答案:

答案 0 :(得分:1)

getDisplayImageForSelectedRow中你只是更新UIImage,你还应该将图像分配给视图。:

func getDisplayImageForSelectedRow() {
   ..
  displayImageVC.displayImage = self._displayImage[row!] as UIImage
  displayImageVC.displayImageView.image = displayImageVC.displayImage <--THIS
  ..
}