将 UIImageView 添加到 UIButton
Posted
技术标签:
【中文标题】将 UIImageView 添加到 UIButton【英文标题】:Adding a UIImageView to UIButton 【发布时间】:2012-11-05 15:51:29 【问题描述】:我创建了一个包含多个 UIImageView 实例的 UIScrollView。 SDWebImage 框架用于缓存图像并将它们呈现在 UIImageView 实例中。现在我希望能够点击这些 UIImageView 实例。
之前我将 UIButtons 添加到 UIScrollView 并在此按钮中添加了图像。但知道我无法将 UIImageView 添加到按钮。我应该如何解决这个问题?是否可以在此视图上放置 UIButton?我该怎么做?
我之前使用它来添加可点击的图像(我需要更改它,由于 SDWebImage 框架,所以我不能使用 UIImage imageNamed:forState
CGFloat y = i * self.view.frame.size.height/6;
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setTag:[[idsCol objectAtIndex: i] intValue]];
aButton.frame = CGRectMake(0, y, self.view.frame.size.width/3, self.view.frame.size.height/6);
aButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
[aButton setImage:[UIImage imageNamed:@"image.jpg" forState:UIControlStateNormal];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
aButton.adjustsImageWhenHighlighted = NO;
[scrollView addSubview:aButton];
我目前需要使以下图像视图可点击:
[testImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
【问题讨论】:
SDWebImage 也有一个用于 UIButtons 的类别 - 我只是使用它来代替。 【参考方案1】:我不熟悉SDWebImage
,但如果这个框架允许你直接修改按钮的 imageView 属性,你会更好:
[myButton.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
或者,如果您想坚持使用图像视图,可以通过向其添加简单的点击手势使其“可点击”:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myMethod:)];
[tap setNumberOfTapsRequired:1];
[tap setNumberOfTouchesRequired:1];
[testImageView setUserInteractionEnabled:YES];
[testImageView addGestureRecognizer:tap];
- (void)myMethod:(UIGestureRecognizer *)sender
NSLog(@"%u",sender.view.tag);
【讨论】:
感谢您的建议!我首先尝试按照建议修改 imageView 属性。不幸的是,这不起作用!我尝试了第二个并创建了一个水龙头识别器(使用上面的代码)。 imageview 确实处理了一个点击,但该操作被发送到选择器 buttonClicked:。此操作用于查看单击按钮的标记。 (我曾经设置 [buttonName setTag:tagId])但我无法向手势识别器添加标签。知道我能做什么吗? @AlexvanRijs 查看我对帖子所做的更改。请原谅任何轻微的错误,我是在 iPad 上写的。以上是关于将 UIImageView 添加到 UIButton的主要内容,如果未能解决你的问题,请参考以下文章
将 UIImageView 添加到 UITableViewCell?
将 UITapRecognizerController 添加到 UIImageView
将 UILabel 添加到 CellForRow 中的 UIImageView