有一系列视图声明为
@property (nonatomic, strong) NSMutableArray *views;
每个视图都是前一个视图的子视图(就像一副牌)。像这样:
____________
| A ______|_____
| | B_________|___
| | | C . . |
|____|..|………. . |
|__|……………………… |
|____________|
我需要删除一个视图(例如此处的视图B)并使其子视图(此处视图C)获取视图的B位置。这就是我在动画中所做的事情:
CGPoint oldCenter = [view center]; // view must be removed
MyView *subView = [MyView new];
subView = [[view subviews] firstObject]; // there is only one view’s subview
MyView *superView = (MyView *)[view superview];
[view removeFromSuperview];
[superView addSubview:subView];
[subView setCenter:subView.superview.center];
[subView setCenter:oldCenter];
不仅view
被删除,而且它的子视图也只有A
而且我真的不知道该怎么做。
答案 0 :(得分:0)
删除视图时,会删除其上的所有对象。就像把书页拿出来一样,该页面上的文字也被删除了。你现在做的是你把C作为B的子视图吗?现在如果我们遵守书的理论,你就在那个页面上放了一个便利贴。现在,当我们现在删除具有文本(对象)和便利贴(C)的页面(B)时,一切都被取出,剩下的就是其他页面(A)。不要将它们作为前一个的子视图,而是将它们全部设为A的子视图(仅当A不能被取出时)。希望这有帮助!!
答案 1 :(得分:0)
如果A为" superview",则将B视为"查看",并将C视为"子视图" - 然后在删除之前查看' -B将其子视图' -c添加到' superview' -A。
checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
layout1.setVisibility(View.VISIBLE);
}
else
{
layout1.setVisibility(View.INVISIBLE);
}
}
});