Objective c 如何在Superview中插入视图';你的观点是什么?(iOS)
我有下面的代码行。。。如何修改它以将子视图插入名为“foo”的superview视图中Objective c 如何在Superview中插入视图';你的观点是什么?(iOS),objective-c,ios,subview,superview,uiview-hierarchy,Objective C,Ios,Subview,Superview,Uiview Hierarchy,我有下面的代码行。。。如何修改它以将子视图插入名为“foo”的superview视图中 [[self superview] addSubview:copy3]; 有不止一种方法可以做到这一点- 1.在代码中有一个IBOutlet参考。这是从xcode接口生成器创建的。一旦你有了这个,它就相当直接了- [iboutlet_foo_object addSubview:copy3]; 2.标记您感兴趣的视图。同样,可以从xcode Interface builder或代码中标记视图。在此之后— F
[[self superview] addSubview:copy3];
有不止一种方法可以做到这一点- 1.在代码中有一个
IBOutlet
参考。这是从xcode接口生成器创建的。一旦你有了这个,它就相当直接了-
[iboutlet_foo_object addSubview:copy3];
2.标记您感兴趣的视图。同样,可以从xcode Interface builder或代码中标记视图。在此之后—
Foo *fooObj = [[self superview] viewWithTag:tagInt];
[fooObj addSubview:copy3];
3.最后,您可以遍历superview中的所有视图&查看哪一个属于Foo
-
NSArray *subviews = [[self superview] subviews];
for(UIView *v in subviews)
{
if(v isKindOfClass:[Foo class])
{
[v addSubview:copy3];
break;
}
}
希望这些方法能帮助您……首先将myView变成superview的一个属性
然后使用
[[[self superview] myView] addSubview:mySubview];
首先用唯一的编号标记视图myView:
myView.tag = 0x1234;
然后,您可以使用viewWithTag找到它:
[[[self superview] viewWithTag:0x1234] addSubview:mySubview];
实际上,您可以将其添加到“视图”而不是“超级视图”
[[self view] addSubview:mySubview];
每当我将子视图添加到父视图时,它对我来说都很好。
如果出现问题,请告诉我。如果您使用的是故事板,并且superview和您的视图位于同一视图控制器的视图中,您可以定义一个插座并引用它。您所说的“命名的foo”是什么意思?视图没有name属性,您是否有名为foo的ivar?我想代码应该是这样的“[[self superview].foo addSubview:copy3];方法不正确。让视图控制器或至少是superview管理插入视图的位置。嗯……它无法使用您的方法识别其他视图控制器中的视图。您需要在新的视图控制器中对其进行引用。首先创建foo
类的空实例。然后尝试从y复制foo
的引用我们的旧ViewController到您的newViewController.foo不是一个类…它是一个在父视图中声明的uiview它说找不到实例方法…知道为什么吗?编辑:看起来其他人的答案是有效的。确定:),您应该将myView int作为视图超级视图classI中的@属性添加myView作为@属性。m是什么意思yView int?抱歉,类型,你@synthesis了吗?好吧,这样它就不再将子视图广告到它原来的视图中了…但它现在根本没有添加它。可能是因为它找不到带有我设置的标记的视图,即使我在superview中设置了标记。你知道为什么它找不到它吗?