2

Flickr API と ObjectiveFlickr を使って無料の楽器 iPhone アプリを作成しています。背景に面白さリストからランダムに写真が表示されるのですが、サイズがわからないと中央に表示できません。(UIWebViewフレームをリセットできるように)

私はこれをしばらく研究してきました。答えが非常に簡単な場合は、初心者を憐れんでください。Web サービス API で遊ぶのは初めてです。=)

面白さフィードからの応答を受け取るまで写真 ID がわからないので、応答で flickr.photo.getSizes を呼び出すにはどうすればよいでしょうか? これは私がこれまでに持っているものです:

- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didCompleteWithResponse:(NSDictionary *)inResponseDictionary{
 int randomResponse = arc4random() % 49;
 photoDict = [[inResponseDictionary valueForKeyPath:@"photos.photo"] objectAtIndex:randomResponse];

 NSString *photoID = [photoDict valueForKeyPath:@"id"];

 NSLog(@"%@",photoID);

 NSURL *photoURL = [flickrContext photoSourceURLFromDictionary:photoDict size:OFFlickrMediumSize];
 NSString *htmlSource = [NSString stringWithFormat:
       @"<html>"
       @"<head>"
       @"  <style>body { margin: 0; padding: 0; } </style>"
       @"</head>"
       @"<body>"
       @"<img src=\"%@\" />"
       @"</body>"
       @"</html>"
       , photoURL];

 [webView loadHTMLString:htmlSource baseURL:nil];
}
4

1 に答える 1

1

返された画像を UIImageView に読み込むことで、必要な動作を実現しました。コードは次のとおりです。誰かの役に立てば幸いです。

- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didCompleteWithResponse:(NSDictionary *)inResponseDictionary{
    int randomResponse = arc4random() % 49;
    photoDict = [[inResponseDictionary valueForKeyPath:@"photos.photo"] objectAtIndex:randomResponse];

    NSString *photoID = [photoDict valueForKeyPath:@"id"];

    NSLog(@"%@",photoID);

    NSURL *photoURL = [flickrContext photoSourceURLFromDictionary:photoDict size:OFFlickrMediumSize];

    NSData *receivedData = [[NSData dataWithContentsOfURL:
                             photoURL] retain];
    UIImage *image = [[UIImage alloc] initWithData:receivedData] ;
    NSLog(@"%i",image.size);

    randomImage.image = image;

    //[webView loadHTMLString:htmlSource baseURL:nil];
}
于 2010-04-16T14:00:01.023 に答える