Iphone 从其他类插入子视图
我正在尝试将UIImageView子视图添加到我的viewController.view中,并考虑它们是位于图像上方还是下方 基本上,我的viewController有一个身体的图像。我允许用户向场景添加附件,例如帽子。我需要把这些图片中的一些放在身体视图索引上面,一些放在身体视图索引下面 然而,我很难想出如何在身体后面添加图像。我想我可以尝试在viewController上创建UIImageView属性作为参考点,并执行以下操作:Iphone 从其他类插入子视图,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我正在尝试将UIImageView子视图添加到我的viewController.view中,并考虑它们是位于图像上方还是下方 基本上,我的viewController有一个身体的图像。我允许用户向场景添加附件,例如帽子。我需要把这些图片中的一些放在身体视图索引上面,一些放在身体视图索引下面 然而,我很难想出如何在身体后面添加图像。我想我可以尝试在viewController上创建UIImageView属性作为参考点,并执行以下操作: //this is from my menuItem cla
//this is from my menuItem class which has a UIViewController property connecting it to the main scene
[self.viewController.view insertSubview:sprite belowSubview:self.viewController.body];
但是,这段代码不起作用,因为我在类型为“UIViewController*”的对象上没有找到警告属性体,即使我使用@Property和@synthesis
有人知道我做错了什么,或者有更好的设计来实现这一点吗?谢谢
@shubhank:
//.h
@interface ViewController : UIViewController {
UIImageView *body;
}
@property (nonatomic, retain) UIImageView *body;
//.m (in viewDidLoad)
self.body = [[UImageView alloc] initWithFrame:CGRectMake(250, 300, 339, 562)];
self.body.image = [UIImage imageNamed:@"body.png"];
[self.view addSubview:body];
[self.view insertSubview:sprite belowSubview:body]。不要在self之后插入viewController,因为self就是viewController。有两件事我似乎无法理解
[self.viewController.view insertSubview:sprite belowSubview:self.viewController.body]
在这里,您可以通过self.viewController.body访问body
然后是身体的定义
[self.view addSubview:body]
那么,为什么您可以通过视图控制器和self.view访问它呢
这里有点不对劲
也
换成
self.body = [[[UIImageView alloc] initWithFrame:CGRectMake(250, 300, 339, 562)]autorelease];
属性保留UIImage视图。您应该释放它。问题已解决:
愚蠢的问题。我只需要在MenuItem类中向前声明ViewController类,而不是使用UIViewController*
感谢您的帮助。在您的问题中添加项目的接口部分中如何定义主体的代码嗨,我提到了我的属性并将其合成。这还不够吗?[at]属性非原子,保留UIImageView*主体;哦,我的错-[self.view insertSubview:sprite belowSubview:body]。不要在self之后插入viewController,因为self是viewController。嗨,我不能在这个类中这样做。我正在实例化MenuItem类UIImageView子类中的图像,该子类嵌套在滚动视图中。我可以使用[self.viewController.view addSubview:sprite]将其显示在viewController中,现在只需考虑如何将其添加到主体下方。您可以发布一些代码吗?看起来你把结构弄乱了一点。当然,你想看看哪个部分?我的viewController只是添加body子视图,并创建一个包含两个菜单项的scrollview。当一个菜单项被触摸时,它会实例化精灵。使用addSubview将精灵添加到viewController没有问题,但我需要将它们添加到body imageview后面的viewController。是否有变量定义的viewController?谢谢回复。我正在viewController类中实例化主体。然而,我正在一个名为MenuItem的单独类中实例化精灵。MenuItem是一个imageView子类。当用户触摸屏幕上的菜单项时,它会在viewController.view上实例化图形,即.hat*编辑:是的,menuItem有一个名为viewController的属性,该属性在我创建menuItems时由viewController menuItem.viewController=self定义。从菜单项向主视图添加代码是一种不好的做法…您应该做的是将精灵另存为菜单项类中的属性..将其作为实例方法…在主视图中使用Menuitem实例创建精灵,然后将其添加到主classHi的视图中,谢谢提示。我将其添加到menuItem中的原因是,我对menuItem具有平移效果,允许用户将menuItem从菜单拖动到场景中。这就是我将精灵实例化到viewController的时候。我已经有它的工作,我可以添加子视图没有问题,弄清楚如何访问身体子视图将意味着我只需要影响这一行代码。谢谢
self.body = [[[UIImageView alloc] initWithFrame:CGRectMake(250, 300, 339, 562)]autorelease];