0

こんにちは私のアプリケーションでは、私は配列を持っています。その中で私はUIViewとUIImageViewコンポーネントの数を持っていて、その配列から各コンポーネントをフェッチしたいので、それがimageviewであるかviewであるかを知る必要があります、それがimageviewである場合、私はそのimageviewの画像を変更する必要があります。コンポーネントがimageviewであるかviewであるかを知る方法についてのアイデア。誰か知っているなら、コンポーネントタイプを認識する方法を教えてください。この問題で私を助けてください。

for (int i=0; i<[array count]; i++){
   // here i have to know wether the component is imageview or view and based on that i have to do below operations 
   UIView *view1=[array objectAtIndex:i];
   NSLog(@"%@",[array objectAtIndex:i]);
   if (130==view1.tag){
       view1.backgroundColor=[UIColor redColor];
    }
    UIImageView *image1=[array objectAtIndex:i];
    if (132==image1.tag){
       image1.image=[UIImage imageNamed:@"Approve2.png"];
    }
}
4

2 に答える 2

7

使用するisKindOfClass

例:

if ( [originalValue isKindOfClass:[UIImageView class]] ){

   UIImageView *myImageView = (UIImageView *)originalValue;

}
于 2013-03-16T17:59:20.560 に答える
-1

クラスの内省で確認できます

これを試して

if( [obj1 class] == [obj2 class] ){

   //same class
}

あなたが便利だと感じるかもしれないいくつかの余分なもの

Class Introspection
·  Determine whether an objective-C object is an instance of a class
        [obj isMemberOfClass:someClass];
·  Determine whether an objective-C object is an instance of a class or its descendants
        [obj isKindOfClass:someClass];
·  The version of a class
        [MyString version]
·  Find the class of an Objective-C object
        Class c = [obj1 class]; 
        Class c = [NSString class];
·  Verify 2 Objective-C objects are of the same class
        [obj1 class] == [obj2 class]
于 2013-03-16T17:59:14.630 に答える