我从某些方面考虑到了OS X,对于iOS来说,这些内容总是可以在视图的边界之外出现? (对于UIView)但是,如果我创建一个全新的单一视图应用程序,并创建了一个MyView类来分类UIView,并实现其drawRect:
- (void)drawRect:(CGRect)rect { // Drawing code UIBezierPath *path = [UIBezierPath bezierPathWithRect: CGRectMake(-20,-20,600,600)]; [[UIColor greenColor] set]; [path fill]; CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context,[[UIColor blueColor] CGColor]); CGContextFillRect(context,CGRectMake(-20,600)); }
我使用UI和CG来绘制一个矩形,以防一个工作,另一个不工作.视图被添加到viewDidAppear中:
- (void)viewDidAppear:(BOOL)animated { MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(20,20,260,260)]; [self.view addSubview:myView]; }
但无论如何,彩盒不会超出(20,260)区域.这是真的吗,只有CALayers可以自由添加和出现在视图的边界之外?可以是因为图形上下文限制了(20,260)开始吗?如果是这样,有没有办法使drawRect内容出现在视图的边界之外,在所有四个上下左右方向?