WKInterfaceImage 无法更新图片的问题

最近涉及到AppleWatch的相关项目,但有个奇怪问题无法解决,而且无法理解:

根据不同的用户操作,需要修改播放器的专辑图片。

不知道跟我的项目需求是不是有关系:我需要轮询共享空间,以拿取同步数据,是否是性能的问题?不晓得

我尝试过的方法如下:

1. WKInterfaceImage继承关系是:-> WKInterfaceObject -> NSObject,无法用UIView的一些方法来移除图片再把新的图片加进去(addSubview,removeFromSuperView)

2. 没有setNeedDisplay等相应的强制刷新方法

3. 只有setHidden方法靠点谱,但尝试后依然无效

4. 我尝试用两张不同的图片来回替换,并调用setHidden方法,依然无效

5. stackoverflow上有个问题是类似的:WKInterfaceTable中的cell里有WKInterfaceImage,在复用旧的cell的时候,发现旧图片内容没有被替换,得到的答案是:这是一个bug,已经在xcode6.2解决(天哪,我的是6.3.2,但依旧没解决啊),给出的临时解决方案是:在赋值新的图片内容之前,先赋值nil。

[self.image setImageNamed:nil];  //也可以是空字符串
[self.image setImageNamed:@"XXXX"];

但~~~我这里依旧无效。

6. 最终解决方案是:在发现需要更新图片的时候,用GCD的延迟方法来执行相关代码。但我不知道是不是由于Watch和iphone之间的同步通信效率低下导致的???

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

});

另外:传说中WKInterfaceDevice可以存储缓存,并且可以通过key值赋值给image对象,但是很遗憾,我这里一旦发现缓存中有图片,再赋值的时候,图片就无法更新了,好奇怪。。。。。欢迎大家一起讨论。

时间: 2024-11-03 22:45:24

WKInterfaceImage 无法更新图片的问题的相关文章

移动化的数字笔记:livescribe3[更新图片]

原贴发在hipda,地址:[移动化的数字笔记:livescribe3[更新图片] - E-INK - Geek Talks · 奇客怪谈 - Hi!PDA Hi!PDA](http://www.hi-pda.com/forum/viewthread.php?tid=1357455&highlight=) 什么是livescribe    它是一只能够把你写在纸上的文字数字化,并同步到电子设备永久保存起来的电子笔. 工作原理:     它由一只电子化的笔和一本印满了小细点的所谓dot paper构

image 有缓存的情况下,图片名称不变,链接不变,只有图片变化的情况下,如何知道图片发生变化需要更新图片?

既然给这张图片写了缓存,那么你请求数据的时候,一定要先从缓存取看,缓存有没有这张图片,如果有就从缓存读取图片信息,不联网.这是正常的思路,但是现在图片更新了.但是你缓存还在,这是你请求数据,去缓存读,缓存还是有图片的,所以你不可能去网络加载.所以你的图片还是缓存的,不可能更新. 所以既然本地有缓存,缓存又没有超时,即使后台更新了图片,我们也获取不到最新的,除非缓存超时或者用户清了缓存,这样才能联网,这时候获取的是新的图片.不然,我觉得不可能获取到新图片,这是矛盾的.

解决 viewer.js 动态更新图片导致无法预览的问题

1.viewer.js 使用 Demo http://fengyuanchen.github.io/viewerjs/ 2.viewer.js 下载地址 https://github.com/fengyuanchen/viewerjs 3.viewer只能初始化一次,也就是说如果用ajax添加了新的图片,你再初始化新添加的图片还是出不来,只有第一次初始化加载的图片 4.解决方案 参看官方文档: 5.具体代码实例 1 $.post('your_url', { 2 param: 'value' 3

基于Python实现matplotlib中动态更新图片(交互式绘图)

最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似). Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切换以及各种第三方包安装问题.Anaconda利用

更新图片函数

/** * @param string $source 源地址 * @param string $now 新地址 * @return string 最后地址 */public function updateImage(string $source='',string $now=''){ //源图片为空 if (empty($source)) { return $now; } else { if ($source == $now) { return $source; } else { $file_

利用数组更新图片

<script type="text/javascript"> var bannerImages=new Array(); bannerImages[0]="Banner1.jpg"; bannerImages[1]="Banner2.jpg"; bannerImages[2]="Banner3.jpg"; bannerImages[3]="Banner4.jpg"; bannerImages[

ASP.NET MVC图片管理(更新)

Insus.NET在ASP.NET MVC专案中,实现了图片管理,上传,预览,显示,删除等功能,还差一个功能,就是更新图片的功能,那这次来完成它.你可以先参考前2篇<ASP.NET MVC图片管理(上传,预览与显示)>http://www.cnblogs.com/insus/p/4620420.html 和<ASP.NET MVC图片管理(删除)>http://www.cnblogs.com/insus/p/4623507.html .我们也是在这些基础上进行完善的. 在数据库中创

python tkinter GUI绘制,以及点击更新显示图片

tkinter 绘制GUI简单明了,制作一些简单的GUI足够,目前遇到的一个问题是不能同时排列显示多幅图片(目前没找到同时显示解决方法), 退而求其次,改成增加一个update按钮,每次点下按钮自动更新图片,注释掉的部分是原来的内核包,替换成自己的程序即可 import tkinter as tk from tkinter import * from tkinter import ttk from urllib.request import urlopen from PIL import Ima

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop