iOS iOS6 iOS7 iPadアプリ iPhoneアプリ Xcode アプリ開発

UIButtonに非同期で画像を読み込み、AspectFillで設置する

UIButtonに非同期で画像を読み込んで、縦横の比率をそのままにして表示させる方法です。AspectFitではないので、ボタンのサイズからはみ出た部分は表示されません。

読み込み中のローディング表示は省略しているので、別で追加する必要がありますが、以下のようなコードで、表題のようなことは簡単にできます。

ネットワーク接続チェックも行って、オフライン時の表示画像なども考慮するとなおのこと良いでしょう。

    dispatch_queue_t q_global = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_queue_t q_main = dispatch_get_main_queue();
    dispatch_async(q_global, ^{
        UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL: [NSURL URLWithString:@"someURL"]]];
        dispatch_async(q_main, ^{
            [button setImage:img forState:UIControlStateNormal];
            [[button imageView] setContentMode:UIViewContentModeScaleAspectFill];
        });
    });

-iOS, iOS6, iOS7, iPadアプリ, iPhoneアプリ, Xcode, アプリ開発
-, , , , ,

Copyright© LAPTURE , 2020 All Rights Reserved.