关于继承简单的问题继承在一个UIView文件
我有一个标准的程序与主视图:
MasterViewController.h
enter code here
@interface MasterViewController:UIViewController中
使用绘图子视图:
MasterViewController.m
frame = CGRectMake(xo, yo, side*width, side*height); // maxSide
backView = [[BackView alloc] initWithFrame:frame];
[backView setBackgroundColor:[UIColor whiteColor]];
[self infoToBackView];
[self.view addSubview:backView];
BackView.h
@interface BackView : UIView
和BackView.m拥有的drawRect:
- (void)drawRect {
:
:
}
我的问题是,我想BackView从MasterViewController继承,即我想要 Backview.h为
@interface BackView : MasterViewController
它允许它从MasterViewController继承它需要的变量。
问题是这不起作用; BackView必须从UIView继承才能使用DrawRect进行绘制。其中infoToBackView是发送所需的变量BackView的方法
[self infoToBackView];
[backView setNeedsDisplay];
:因此,调用UIView的BackView之前,我必须把它所需要的变量图。
64,000美元的问题:我怎样才能有一个从MasterViewController继承并具有drawRect的BackView?
你不能这样做,因为Objective- C没有多重继承。你不应该这样做,因为视图控制器不是视图。你最好多思考一下设计。您不需要从视图控制器继承变量 - 视图控制器应该使用该信息并将其传递给视图。 – Abizern
你不能。如果你的视图要绘制自己,它需要是一个UIView子类。为什么将这些值传递给视图是一个问题? –
将值传递给视图不是问题。我只是认为使用继承会使它更容易。 – mbs31