Bal*_*cze 4 uiimageview uiactivityindicatorview ios
我有一个应用程序,用户可以从相机胶卷中选择一个图像,然后将该图像加载到一个UIImageView.但是,如果图像很大,则会出现延迟,直到所选图像实际出现在UIImageView(设置图像未执行,main thread因此UI不会被冻结).在设置图像之前,我想显示一个活动指示器,通知用户应用程序没有冻结,只是加载图像.但是,我不知道如何检测图像何时被设置UIImageView为隐藏活动指示器.我猜也许KVO可以在这里提供帮助,但我不确定如何正确实施它.
抱歉,这个菜鸟问题!:)
lib*_*bec 12
如果你正在使用swift,你也可以创建UIImageView子类和覆盖image属性来观察值didSet.只记得设置超类的图像.
class ImageView: UIImageView {
override var image: UIImage? {
didSet {
super.image = image
println("Image Set")
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用 KVO 观察 UIImageView 图像属性。添加代码以停止旋转器代替 NSLog(@"imageReady");。
@implementation ViewController {
__weak IBOutlet UIImageView *_imageView;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_imageView addObserver:self forKeyPath:@"image" options:NSKeyValueObservingOptionNew context:NULL];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"image"]) {
//Image ready
//Stop loading spinner.
NSLog(@"imageReady");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |