删除按钮表单scrollview

时间:2010-01-06 11:07:42

标签: iphone uiscrollview

我在我的项目中添加了一个UIScrollView ...我再添加了10个按钮“fieldButton”,然后我想要添加其他5个按钮的相同UIScrollView。它我尝试这样做首先添加10按钮也进入滚动视图..如何删除第一个添加10按钮之后添加其他项目。在同一个滚动视图...

if(a == 1){
    for(int i = 0; i< 10; i++){
        UIButton *fieldButton_area = [[Mos_component alloc]getComboButton:title       andFrame:CGRectMake(0, y, 180, 40)];

        [fieldButton_area addSubview:cid];
        [fieldButton_area addTarget:self action:@selector(get_Area:)  forControlEvents:UIControlEventTouchUpInside];
        [state_scroll addSubview:fieldButton_area];
   }
}
else{
    UIButton *fieldButton_state = [[Mos_component alloc]getComboButton:title andFrame:CGRectMake(0, y, 180, 40)];
    [fieldButton_state addSubview:cid];
    [fieldButton_state addTarget:self action:@selector(get_Area:)  forControlEvents:UIControlEventTouchUpInside];
    [state_scroll addSubview:fieldButton_state];
}

2 个答案:

答案 0 :(得分:0)

如果您只想清除滚动视图(即删除其所有子视图),那么您可以按照以下方式执行此操作:

for (UIView* subView in [state_scroll subviews])
    [subView removeFromSuperView];

如果要删除某些特定视图,可以检查其类型:

for (UIView* subView in [state_scroll subviews])
    if ([subView isKindOfClass:[Mos_component class]]) // remove Mos_components only
        [subView removeFromSuperView];

您还可以为视图指定标记属性,并按照以下方式删除它们:

 [[fieldButton_area viewWithTag:yourTag] removeFromSuperView];

另请注意,您必须在某处释放按钮,否则会导致内存泄漏。

答案 1 :(得分:0)

您还可以尝试动画屏幕上的按钮或将alpha设置为0,然后将新的UIButton添加到视图中。这可能会占用更多内存,但在某些情况下会更好看。

[UIView BeginAnimation];
// set time and speed here

// Perform animation here

[UIView setAnimationDidStopSelector /* here call the method for the new button's animation into the view*/];

[UIView CommitAnimations];
// Then set the button's enabled property to NO
button.enabled = NO;

我希望这是一些帮助