【问题标题】:A follow-up Q for avoid UI getting lagged (IOS)避免 UI 滞后的后续 Q (IOS)
【发布时间】:2012-02-26 12:17:52
【问题描述】:

现在我正在使用这段代码,稍作修改:

if (self._photoPath && !self._photo) {
    dispatch_queue_t bg_thread = dispatch_queue_create("com.yourcompany.bg_thread", NULL);
    dispatch_queue_t main_queue = dispatch_get_main_queue();
    dispatch_async(bg_thread,^{
        NSData *data = [NSData dataWithContentsOfFile:self._photoPath];
        if(data != nil) {
            dispatch_async(main_queue,^{ 
                self._photo = [UIImage imageWithData:data];
                [self.photoButton setImage:[UIImage imageNamed:@"photoButton.png"] forState:UIControlStateNormal];
            });
        }
    });

}

如你所见,事实上,在我得到那张照片后,我想立即将它设置为我的“photoButton”,

但是现在,UI 变得平滑了,但是我的 photoButton 的外观总是黑色的...

接下来我该怎么做?

感谢您的耐心等待。

_______________更新________

我有 2 个 viewController,A 和 B。

A是根viewController,B是A的子viewController。

在B中,有一个调用相机拍照的按钮。

用户拍照后,照片的外观就变成了那张照片。

当我从 A 推送一个新的 B(没有照片)时,

一切顺利。

但是当有一个老B里面有一张照片。

动画有点卡住了,因为我猜是下面的代码:

- (void)viewWillAppear:(BOOL) animated {
if (self._photoPath && !self._photo) {
        NSData *data = [NSData dataWithContentsOfFile:self._photoPath];
        if(data != nil)
            self._photo = [UIImage imageWithData:data];
}
[super viewWillApear];

}

但我确实需要在显示视图之前获取该照片,因为我需要将该照片设置为我的 photoButton 的背景。

那么,有没有办法避免卡住视图的动画?因为它确实会导致糟糕的用户体验。

非常感谢!

【问题讨论】:

    标签: ios multithreading user-interface photo lag


    【解决方案1】:

    我找到了答案。

    只需添加一行代码即可刷新按钮。

    对我来说是

    [self.photoButton setImage:[UIImage imageNamed:@"photoButton.png"] forState:UIControlStateNormal];
    NSUInteger p[2] = {1,4};
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:
                                  [NSIndexPath indexPathWithIndexes:p length:2]] 
                          withRowAnimation:UITableViewRowAnimationNone];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 2014-08-21
      相关资源
      最近更新 更多