如何从服务器设置图像作为矩形按钮的背景图像

时间:2012-05-17 16:22:45

标签: iphone ios xcode ios5 storyboard

我一直在尝试将rect按钮的背景图像设置为我在Web服务器上的.png文件。我已经在视图控制器.h中声明了该按钮,并将其添加到.m viewdidload:

[mybutton setImage: [UIImage imageNamed: @"http://www.myserver.com/index_files/stacks_image_14.png"] forState: UIControlStateHighlighted];

但按钮中没有显示任何内容。我一直在阅读NSSURL,看看在我尝试将它们分配给对象之前调用图像,但我现在有点卡住了。

感谢您的帮助!

编辑:新代码我试过了:

 NSURL *myurl2 = [NSURL URLWithString:@"http://www.myserver.com/bigoaks.png"];
    NSURLRequest *request2 = [NSURLRequest requestWithURL:myurl2
                                             cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                         timeoutInterval:10.0];

    NSURLConnection *connection2= [[NSURLConnection alloc] initWithRequest:request2 
                                                                 delegate:self];
    NSString *mystring2 = [NSString stringWithContentsOfURL:myurl2 encoding:NSUTF8StringEncoding error:&error]; 
    [mybutton setImage : mystring2];

仍然似乎得到“UIButton没有可见的@interface声明选择器'setImage:'

再次感谢所有人的帮助!

编辑2:

知道了!感谢所有帮助人员 - 这是帮助其他人的最终代码:

NSURL *myurl2 = [NSURL URLWithString:@"http://www.myserver.com/bigoaks.png"];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:myurl2]];
[mybutton setImage:image forState:UIControlStateNormal];

使用本教程:http://mobiledevelopertips.com/cocoa/download-and-create-an-image-from-a-url.html

3 个答案:

答案 0 :(得分:0)

NSURL *url = [NSURL URLWithString:@"http://www.myserver.com/image.png"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
[mybutton setImage:image];

希望这就是你要找的东西:)

答案 1 :(得分:0)

imageNamed用于使用捆绑包中包含的图像。另一个答案是正确的,虽然如果存在连接问题或一般延迟,该代码将冻结您的UI,因为它不是异步的。相反,我建议使用NSURLRequest和NSURLConnection以异步方式下载图像,并将按钮设置为在完成委托功能(connectionDidFinishLoading)中使用它。

答案 2 :(得分:0)

试试这个

[mybutton setBackgroundImage:[UIImage imageNamed:@“http://www.myserver.com/index_files/stacks_image_14.png”] forState:UIControlStateNormal];