isKindOfClass抢标签

问题描述:

我只想抢按钮标签1〜5滚动型中,其他数据也不需要把握isKindOfClass抢标签

(void)layoutScrollImages 
{ 
    UIImageView *view = nil; 
    NSArray *subviews = [weekscroll subviews]; 

    CGFloat curXLoc = 0; 
    for (view in subviews) 
    { 
     if ([view isKindOfClass:[UIImageView class]] && view.tag > 0) 
     { 
      NSLog(@"%d",view.tag); 
      CGRect frame = view.frame; 
      frame.origin = CGPointMake(curXLoc, 0); 
      view.frame = frame; 
      curXLoc += (wScrollObjWidth); 
     } 
    } 
    NSLog(@"subviews = %@",subviews); 
    [weekscroll setContentSize:CGSizeMake((wNumImages * wScrollObjWidth), [weekscroll bounds].size.height)]; 
} 

    subviews = (
    "<UIImageView: 0x1ba330; frame = (313 61; 7 5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1bac00>>", 
    "<UIImageView: 0x1bc900; frame = (315 59; 5 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1bdde0>>", 
    "<UIButton: 0x1bd380; frame = (0 1; 50 66); opaque = NO; layer = <CALayer: 0x1bd410>>", 
    "<UIButton: 0x1bd690; frame = (50 0; 50 66); opaque = NO; layer = <CALayer: 0x1bd720>>", 
    "<UIButton: 0x1bd9a0; frame = (100 0; 50 66); opaque = NO; layer = <CALayer: 0x1bda30>>", 
    "<UIButton: 0x1bc570; frame = (150 0; 50 66); opaque = NO; layer = <CALayer: 0x1bc600>>", 
    "<UIButton: 0x1beaa0; frame = (300 0; 50 66); opaque = NO; tag = 1; layer = <CALayer: 0x1beb30>>", 
    "<UIButton: 0x1bff40; frame = (350 0; 50 66); opaque = NO; tag = 2; layer = <CALayer: 0x1c0920>>", 
    "<UIButton: 0x1c0e60; frame = (400 0; 50 66); opaque = NO; tag = 3; layer = <CALayer: 0x1c0ef0>>", 
    "<UIButton: 0x1c1430; frame = (450 0; 50 66); opaque = NO; tag = 4; layer = <CALayer: 0x1c14c0>>", 
    "<UIButton: 0x1c1a00; frame = (500 0; 50 66); opaque = NO; tag = 5; layer = <CALayer: 0x1c1a90>>", 

    "<UIButton: 0x1cb340; frame = (1800 0; 50 66); opaque = NO; layer = <CALayer: 0x1cb3d0>>", 
" 
)UIImageView: 0x1ba330; frame = (313 61; 7 5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = 
+0

我没有得到实际的问题是什么。你可以说得更详细点吗 ? – adig 2012-04-26 06:26:31

+0

NSArray * subviews = [weekscroll subviews];拿更多的信息,我只想抓住ScrollView中的按钮标签1〜5 – 2012-04-26 06:42:21

+0

我已经打印了子视图信息,我只想抓住按钮标签 – 2012-04-26 06:44:14

按打印日志,只有UIButtons是有标签和示例代码中,你是在UIImageView的工作,所以使用给定的代码为每你的要求。

我修改了你的代码,如下所示,只是检查出来。

for (id objView in subviews) 
{ 
    if ([objView isKindOfClass:[UIImageView class]]) 
    { 
     UIImageView *imgView = (UIImageView*) objView; 
     if (imgView.tag > 0) 
     { 
      NSLog(@"%d",imgView.tag); 
      CGRect frame = imgView.frame; 
      frame.origin = CGPointMake(curXLoc, 0); 
      imgView.frame = frame; 
      curXLoc += (wScrollObjWidth); 
     } 
    } 
} 

或者,如果你想抓住唯一UIButtons,

for (UIButton *btnView in subviews) 
{ 
    if ([btnView isKindOfClass:[UIButton class]] && btnView.tag > 0) 
    { 
     NSLog(@"%d",btnView.tag); 
     CGRect frame = btnView.frame; 
     frame.origin = CGPointMake(curXLoc, 0); 
     btnView.frame = frame; 
     curXLoc += (wScrollObjWidth); 
    } 
} 

你想标记大于按钮0右..然后你为什么检查[UIImageView类] ..?

你的病情找到与标签大于0的按钮应该是:

if ([aView isKindOfClass:[UIButton class] && (aView.tag > 0)]) { 
} 
+0

我是初学者,感谢您的建议.. – 2012-04-26 07:31:39