Как я могу заставить UIImageView загрузить изображение, но URL находится на UILabel? - PullRequest
1 голос
/ 17 сентября 2011

Как я могу заставить UIImageView загрузить изображение, но URL находится на UILabel?

Более подробное объяснение: у меня есть UILabel, содержащий веб-адрес изображения, поэтому я хочу этоадрес для загрузки изображения на UIImageView.Я предполагаю, что это требует некоторого кодирования, но я понятия не имею, как это сделать.Пожалуйста, помогите!

Ответы [ 2 ]

3 голосов
/ 17 сентября 2011
UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:yourlabel.text]]];

Добавьте изображение выше на свой UIImageView:

UIImageView *img = [[UIImageView alloc] initWithImage:myImage];

РЕДАКТИРОВАТЬ: Перейдите сюда и прочитайте раздел "Категории". В этом примере метода проверяется, является ли ваша строка URL-адресом с префиксом http: //. Используйте это, и если оно возвращает NO, просто добавьте строку "http://" в качестве префикса к yourlabel.text, а затем передайте ее выше вместо yourlabel.text

И да, как говорит ссылка, это просто базовое обнаружение URL, которое просто проверяет, была ли строка префиксом http://

Пример кода: простое оконное приложение

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    UILabel *label = [[UILabel alloc] init];
    label.text = @"http://www.arthistoryarchive.com/arthistory/cubism/images/PabloPicasso-Weeping-Woman-with-Handkerchief-1937.jpg";
    UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:label.text]]];
    UIImageView *img = [[UIImageView alloc] initWithImage:myImage];
    img.frame = CGRectMake(0, 0, 768, 1024);
    [self.window addSubview:img];
    [self.window makeKeyAndVisible];
    return YES;
}
0 голосов
/ 17 сентября 2011

Это проще, чем вы думаете.

Сначала преобразуйте строку URL в NSURL

NSURL*   imageUrl  = [NSURL URLWithString:url];

Затем загрузите данные по этому URL

NSData*  imageData = [NSData dataWithContentsOfURL:imageUrl];

Затем загрузите эти данные в UIImage

UIImage* image     = [UIImage imageWithData:imageData];

И, наконец, попросите ваш UIImageView отобразить это изображение.

imageView.image = image;
...