Objective c IOS:使用标记值更改UIImageView
我有20个UIImageView,我想更改它们的图像;但我不想创建20个IBOutlet,我想使用标记值来更改图像;我在interface builder和之后设置了标记值?如果我想更改Imageview 15号的图像?我该怎么做?如果使用标记,您可以识别标记视图(UIImageView是UIView的子类,具有标记属性),如下所示:Objective c IOS:使用标记值更改UIImageView,objective-c,xcode,ios,tags,uiimageview,Objective C,Xcode,Ios,Tags,Uiimageview,我有20个UIImageView,我想更改它们的图像;但我不想创建20个IBOutlet,我想使用标记值来更改图像;我在interface builder和之后设置了标记值?如果我想更改Imageview 15号的图像?我该怎么做?如果使用标记,您可以识别标记视图(UIImageView是UIView的子类,具有标记属性),如下所示: - (UIView *)viewWithTag:(NSInteger)tag UIImageView *myImageView = (UIImageView *
- (UIView *)viewWithTag:(NSInteger)tag
UIImageView *myImageView = (UIImageView *)[myAwesomeSuperview viewWithTag:15];
因此,如果在superview(所有UIImageView都位于其中)上调用此方法,则应如下所示:
- (UIView *)viewWithTag:(NSInteger)tag
UIImageView *myImageView = (UIImageView *)[myAwesomeSuperview viewWithTag:15];
(我用谷歌找到的)
附言:如果您认为添加20个iboutlet太麻烦,我建议您也以编程方式创建uiImageView。这样,您就根本不需要xib文件,只需编写一小段代码,就可以轻松地进行更好的维护。SWIFT,2015年4月:
UIImageView *imageView=(UIImageView *)[self.view viewWithTag:*givetag*];
[imageView setImage:[UIImage imageNamed:@"nameof yourimage"]];
func createUIImageViews()
{
for i in 0...99
{
var imageView:UIImageView = UIImageView(frame: CGRectMake(CGFloat(0), CGFloat(0), CGFloat(100), CGFloat(100)))
imageView.userInteractionEnabled = true
imageView.tag = i
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "onImageViewTap:"))
self.view.addSubview(imageView)
}
}
func onImageViewTap(sender:UITapGestureRecognizer)
{
println("TAP: \(sender.view!.tag)")
}
由于viewWithTag返回UIView..UIImageView myImageView=(UIImageView)[myAwesomeSuperview viewWithTag:15],因此可能需要键入cast;