3

私はxib ファイルで定義されたUITableViewCell2 を持っています。今、私はUIを美しくするというアイデアを思いついたので、非同期応答が返されなくなるまでUIImageViewUIImageViewのランタイムを変更したいと思います。UIActivityIndicatorView

残念ながら、UIActivityIndicatorView完成したときの完全なイメージだけで、まったく見えません。

関連するコード部分は次のとおりです。

-(UITableViewCell *)tableView:(UITableView *)tableView
        cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell =
         [tableView dequeueReusableCellWithIdentifier:myTableCellId];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

...

    UIImageView *imageView = (UIImageView *)[cell viewWithTag:200];

...

    imageView.image=nil; // reset image as it will be retrieved asychronously

    UIActivityIndicatorView *loadingActivity = [[UIActivityIndicatorView alloc] 
        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
    [loadingActivity startAnimating];

    loadingActivity.frame = imageView.frame;
    UIView* parent = [imageView superview];
    [parent addSubview:loadingActivity];
    [parent bringSubviewToFront:loadingActivity];    

    [myObject callMyFunction:index completionBlock:^(UIImage *img) {
        dispatch_async(dispatch_get_main_queue(), ^{
            imageView.image=img;
            [loadingActivity stopAnimating];
            [loadingActivity removeFromSuperview];
            //DLog(@"Got image for: %@", titleLabel.text);
        });
    }];

    return cell;
}

何が間違っているのですか?

4

2 に答える 2

1

フレームを設定してから、アニメーションの開始を呼び出します。また、割り当てたフレームを変更してみてください。

loadingActivity.frame = CGRectMake(20, 20, 40, 20)

loadingActivity.hidesWhenStopped = YES;removeFromSuperview を実行する代わりにプロパティを設定することもできます。

于 2013-07-05T15:38:57.713 に答える