2013-08-21 150 views
0

sample image如何将子视图添加到子视图的滚动视图

如何创建此视图。用于添加滚动视图

yPos=0; 
for (int i=0; i<24; i++) { 

    UIView *timeView=[[UIView alloc]initWithFrame:CGRectMake(71, yPos, 909, 60)]; 
    timeView.userInteractionEnabled=TRUE; 
    timeView.exclusiveTouch=YES; 
    if (i==4) { 
     UIView *ssview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 80)]; 
     ssview.tag=1; 
     ssview.userInteractionEnabled=TRUE; 
     UILabel *recurenceId=[[UILabel alloc]init]; 
     [email protected]"A12334"; 

     [ssview addSubview:recurenceId]; 
     ssview.backgroundColor=[UIColor orangeColor]; 


     [timeView addSubview:ssview]; 
     [ssview addGestureRecognizer:tap]; 



    } 

这里ssview高度 代码比timeview.so它被加入到下一个子视图也

这里的每行是滚动视图的子视图更多。 现在我不得不添加另一个绿色的视图。

+0

您的问题是什么? – Kepler

+0

如果在第12行添加了greenView,它必须根据其高度在第13行上添加.. – sudheer

+0

因此您想根据子视图更改第12行的高度? –

回答

1
NSArray *greenViewsIndexes=[NSArray arrayWithObjects:[NSNumber numberWithInt:5],[NSNumber numberWithInt:6],[NSNumber numberWithInt:11],[NSNumber numberWithInt:12], nil]; 
for (int i=0; i<24; i++) { 

for (int j=0; j>greenViews.count; j++) { 
if ([[greenViews objectAtIndex:j]intValue]==i){ 
    UIView *greenView=[[UIView alloc]initWithFrame:CGRectMake(71,61*(j+1),100,80)]; 
    [greenView setBackgroundColor:[UIColor greenColor]]; 
    } 
    } 

    //another operations 

} 
+0

很好的答案...但我只有两个索引值5和11.当ia子视图在索引5处添加80像素高度时,它必须与第6个索引重叠...但它没有这么做,因为每行高度仅为60像素....我想现在你得到了我的问题... – sudheer

+0

所以,你想添加子视图与80高度60视图,你不能改变视图的高度60,对不对? – Kepler

+0

是的right.when我们通过80高度意味着添加子视图必须在下一个子视图上添加... – sudheer

0

我给你解决了问题。它不会与下一个单元格重叠,因为您的下一个单元格位于您之前的单元格上并与之前单元格的边缘重叠。尝试:从超级视图中删除单元格(将具有绿色视图),并再次添加绿色视图:

NSArray *greenViewsIndexes=[NSArray arrayWithObjects:[NSNumber numberWithInt:5],[NSNumber numberWithInt:11], nil]; 
for (int i=0; i<greenViewsIndexes.count; i++) { 
int j=[[greenViewsIndexes objectAtIndex:i]intValue]; 
[[self.view subviews] objectAtIndex:i] removeFromSuperView] 

UIView *timeView=[[UIView alloc]initWithFrame:CGRectMake(71, 61*(j+1), 909, 60)]; //set your values 
timeView.userInteractionEnabled=TRUE; 
timeView.exclusiveTouch=YES; 
UIView *greenView=[[UIView alloc]initWithFrame:CGRectMake(71,61*(j+1),100,80)]; //set yourValues 
[greenView setBackgroundColor:[UIColor greenColor]]; 
[timeView addSubview:greenView]; 
[self.view addSubview:timeView]; 
} 
+0

感谢您的支持...我使用ios6.1。它显示错误在removeFromSuperView .. – sudheer

+0

你是什么得到,关于这个方法? – Kepler

相关问题