私の考えは、生成された整数値を UIImageView の名前に追加することです。次に例を示します。imageView1、imageView2、imageView3 という名前の 3 つの UIImageView があります。ボタンが押されると、この単純なコードが表示されます:
self.value = value + 1;
(もちろん、この「値」が宣言されています) 次のようなコードを追加します:
UIImage *img = [UIImage imageNamed:@"image.png"];
[imageView(value) setImage:img];
コードのこの部分で...[imageView(value)...
、上で定義した値を使用する必要があります。 . どうすればこれを行うことができますか?
質問する
616 次
3 に答える
1
画像ビューにを設定できtag
ます。
// set tag
[imageView1 setTag:1];
[imageView2 setTag:2];
//...
// get the image view with the tag
[(UIImageView *)[self.view viewWithTag:value] setImage:img];
//...
于 2012-09-29T09:04:06.157 に答える
1
ここで私はあなたの要件に従ってやろうとしました。
私のViewControllerクラス
- (void)viewDidLoad
{
[super viewDidLoad];
ExtendedUIImageView *eimage=[[ExtendedUIImageView alloc]initExtendedUIImageViewWithFrame:CGRectMake(0, 0, 768, 1024)];
UIImage *img1=[UIImage imageNamed:@"mac.png"];
UIImage *img2=[UIImage imageNamed:@"images.jpeg"];
UIImage *img3=[UIImage imageNamed:@"mac.png"];
[eimage addUIImage:img1 ToExtendedImageViewWithRect:CGRectMake(100, 100, 100, 100) withTag:1];
[eimage addUIImage:img2 ToExtendedImageViewWithRect:CGRectMake(210, 100, 100, 100) withTag:2];
[eimage addUIImage:img3 ToExtendedImageViewWithRect:CGRectMake(320, 100, 100, 100) withTag:3];
[self.view addSubview:eimage];
}
- (IBAction)chageImage:(UIButton *)sender {
NSLog(@"#####");
UIImage *img2=[UIImage imageNamed:@"images.jpeg"];
[eimage replaceImage:img2 forTag:3];
}
UIView クラスを拡張し、新しい Class ExtendedImageView クラスを作成しました
ExtendedImageView.h
@interface ExtendedUIImageView : UIView
-(id)initExtendedUIImageViewWithFrame:(CGRect)rect;
-(void)addUIImage:(UIImage *)img ToExtendedImageViewWithRect:(CGRect)rect withTag:(int)n;
-(void)replaceImage:(UIImage *)newImg forTag:(int)n;
@end
ExtendedImageView.m
@implementation ExtendedUIImageView
-(id)initExtendedUIImageViewWithFrame:(CGRect)rect{
if([super initWithFrame:rect]){
return self;
}
return nil;
}
-(void)addUIImage:(UIImage *)img ToExtendedImageViewWithRect:(CGRect)rect withTag:(int)n{
UIImageView *imgView=[[UIImageView alloc]initWithImage:img];
//[imgView setBackgroundColor:[UIColor grayColor]];
imgView.frame=rect;
[imgView setTag:n];
[self addSubview:imgView];
}
-(void)replaceImage:(UIImage *)newImg forTag:(int)n{
for(UIView * img in [self subviews]){
if([img isKindOfClass:[UIImageView class]]&&[img tag]==n){
((UIImageView *)img).image=newImg;
}
}
}
@end
于 2012-09-29T12:29:01.770 に答える
1
UIImageViews
タグを使用するか、 を に入れることができますNSArray
。次に、次のようなことができます
[((UIImageView *)[imageViewArray objectAtIndex:self.value]) setImage:img];
于 2012-09-29T09:06:27.113 に答える