Iphone 如何在单个UIViewController中实现多个UIView类
在基于视图的应用程序中,我加载了一个视图作为mainview,另一个视图作为mainview的子视图。它工作得很好代码片段是 在mainviewcontroller中Iphone 如何在单个UIViewController中实现多个UIView类,iphone,Iphone,在基于视图的应用程序中,我加载了一个视图作为mainview,另一个视图作为mainview的子视图。它工作得很好代码片段是 在mainviewcontroller中 IBOutlet UIView *subView; @property(nonatomic,retain) UIView *subView; @synthesize subView; [subView release]; //add subview [self.view addSubview:subView]; //remov
IBOutlet UIView *subView;
@property(nonatomic,retain) UIView *subView;
@synthesize subView;
[subView release];
//add subview
[self.view addSubview:subView];
//removefromsubview
[subView removeFromSuperview];
此代码工作正常
我不想在mainviewcontroller中创建子视图,所以我创建了一个新的UIView类,并将其命名为subview,现在我从mainviewcontroller中删除了所有子视图声明,只需在mainviewcontroller中导入子视图类。并使用此[self.view addSubview:subView]代码>
这东西不太管用。谁能帮我。。。我如何与UIViewcontroller交互一个单独的UIView类。还有一件事是UIView类有标签和文本框。我可以将UIViewcontroller中的值设置为UIView标签和文本框
可能吗
提前感谢……很抱歉我的英语不好您有一个名为Subview的子类,它被声明为UIView,即
@interface Subview : UIView {
UILabel *foo;
}
@property (nonatomic, retain) UILabel *foo;
@end
现在,您希望在主UIView中使用这个子类,从一开始就是这样。你需要做几件事
#导入头文件中的子视图,并将其实例添加到类中
#导入“Subview.h”
在你的@界面的{}内
Subview *mySubview;
在主视图控制器的viewdiload
类的底部,添加如下内容:
mySubview = [[Subview alloc] init];
[self.view addSubview:mySubview];
[mySubview release];
- (id)init
{
if (self = [super init]) {
foo = [[UILabel alloc] init];
foo.text = @"Hello!";
[self addSubview:foo];
}
return self;
}
第一行将为您分配一个新的“子视图”,第二行将把它添加到您的视图中,这样您就可以得到它所拥有的内容,第三行将发布它。在这里发布它是可以的,因为“self.view”现在将负责它,所以它不会消失
最后,需要在子视图的init方法中设置视图。在Subview.m中,执行以下操作:
mySubview = [[Subview alloc] init];
[self.view addSubview:mySubview];
[mySubview release];
- (id)init
{
if (self = [super init]) {
foo = [[UILabel alloc] init];
foo.text = @"Hello!";
[self addSubview:foo];
}
return self;
}
我认为这应该解决它。您还想在子视图的-dealloc
中发布foo,但您可能已经知道如何执行这些操作了。您能把您的代码放到问题中吗。。。不起作用的那一个是的,在viewDidLoad方法中,我添加了以下代码[self.view addSubview:subView];IBUIView*子视图@属性(非原子,保留)UIView*子视图@综合子视图;[子视图发布];在这些方法中,我在mainviewcontroller中创建一个子视图作为xib文件。因此,我们不需要分配和解除分配代码,只需将子视图作为uiview拖放即可。工作正常。主要是因为我想要分离uiview子类,这意味着在mainviewcontroller中使用了更多的标签和文本框,所以我想将这些变量从mainviewcontroller中分离出来,所以我想添加为分离的uiview子类。当你说要创建子类,然后谈论不是子类的子视图时,你把我弄糊涂了,只是一个普通的老景观。让我看看我是否明白了你的意思:你有一堆标签和文本框,你想通过添加独立的UIView子类从你的视图控制器中分离出来。。。?那没有道理。首先,子类化的原因是什么?对不起,我无法解释我到底想要什么。。谢谢你的重播。如果不是答案,请不要接受我的答案!:如果你试着用不同的方式解释你的问题,也许我或其他人会理解你的意思。我认为您误用了“subclass”一词——子类化意味着您创建了一个名为“mycokieview”的新的.m和.h文件,其中包含类似于@interface mycokieview:UIView的内容。这是你的意思吗?是的,你是对的。我创建了一个新的子类,名为Subview,它有两个文件Subview.h和Subview.m,还有@interface Subview:UIView。i、 e@interface子视图:UIView{IBOutlet UILabel*someLabel;IBOutlet UITextField*someTextField;}@property(非原子,保留)IBOutlet UILabel*someLabel@属性(非原子,保留)UITextField*someTextField@结束我想让这个子类与我的mainviewcontroller.m文件交互。例如#导入“Mainviewcontroller.h”#导入“SubView.h”子视图*view2;view2.someLabel.text=@“某些字符串”;