【问题标题】:Add URL image to button click将 URL 图像添加到按钮单击
【发布时间】:2013-03-21 11:53:58
【问题描述】:

我搜索了一些教程,将 UIImage 添加到按钮以进行点击事件。如何添加 URL 路径

图像到按钮..例如代码:

UIButton *imageView=[[UIButton alloc]initWithFrame:CGRectMake((320*index)+countFlag*80+ 2, 5, 75, 75)];
                imageView.tag=i+1;
                [imageView addTarget:self action:@selector(imageViewClicked:) forControlEvents:UIControlEventTouchUpInside];
                [imageView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
                [imageView.layer setBorderWidth:1.0f];
                switch ((i+1)%5) {
                    case 0:
                        [imageView setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];               

                        break;

                    case 1:
                        [imageView setImage:[UIImage imageNamed:@"img2.png"]  forState:UIControlStateNormal];

                        break;
    }

【问题讨论】:

  • 你想用背景图片显示按钮吗?
  • 使用 EGOButton 作为 URL。

标签: iphone objective-c image url uibutton


【解决方案1】:

最好使用SDWebImage 的这个UIButton+WebCache.h 类别它支持为您的按钮异步加载图像。您可以使用以下任何一种方法。

- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state;
- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder;

还为UIButton提供背景图片异步加载

- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state;
- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder;

不要忘记将SDWebImage 包含到您的项目中,并将UIButton+WebCache.h 文件包含到您的实现文件中。

参考:https://github.com/rs/SDWebImage

【讨论】:

    【解决方案2】:

    试试这个按钮(imageView)

    [imageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"imageurl"]]]forState:UIControlStateNormal];
    

    【讨论】:

    • 我们使用的是哪个 ios 版本?,您为 imageview 或 uibutton 设置图像?
    • 使用ios 6.1,设置图片为uibutton。 UIButton *imageView=[[UIButton alloc]initWithFrame:CGRectMake((320*index)+countFlag*80+ 2, 5, 75, 75)]; imageView.tag=i+1; [imageView addTarget:self action:@selector(imageViewClicked:) forControlEvents:UIControlEventTouchUpInside]; [imageView.layer setBorderColor:[UIColor lightGrayColor].CGColor]; [imageView.layer setBorderWidth:1.0f];
    • 它工作正常。谢谢..那么是否可以将多个url加载到uibutton?
    【解决方案3】:

    对于正常状态,

    [imageView setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];
    

    对于 Clicked (Selected) 状态,

    [imageView setImage:[UIImage imageNamed:@"img2.png"] forState:UIControlStateSelected];
    

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:
      NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"url"];
      [imageView setImage:[UIImage imageWithData:data]];
      

      【讨论】:

        【解决方案5】:

        试试这个:

            EGOImageButton* btnUserImage = [[EGOImageButton alloc] initWithPlaceholderImage:[UIImage imageNamed:@"ProfilePictureDefault.png"]];
            btnUserImage.frame = CGRectMake(10,5,25,25);
            btnUserImage.highlighted = NO;
            [self addSubview:btnUserImage];
        
            btnUserImage.imageURL = [NSURL URLWithString:Url];
        

        【讨论】:

          猜你喜欢
          • 2012-03-30
          • 1970-01-01
          • 2018-02-16
          • 2019-06-24
          • 2020-08-24
          • 2015-05-09
          相关资源
          最近更新 更多