我在我的项目中添加了一个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];
}
答案 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;
我希望这是一些帮助