私はある時点から、OS X の場合、そして iOS の場合は常にそうであると考えていましたが、コンテンツはビューの境界の外に表示される可能性がありますか? (UIView の場合) しかし、まったく新しいシングル ビュー アプリを作成し、UIView をサブクラス化する MyView クラスを作成し、その 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, -20, 600, 600));
}
UI と CG の両方を使用して、一方が機能し、もう一方が機能しない場合に備えて、それぞれ四角形を描画します。ビューは次のように追加されviewDidAppear
ます。
- (void)viewDidAppear:(BOOL)animated {
MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(20, 20, 260, 260)];
[self.view addSubview:myView];
}
しかし、何があっても、色付きのボックスは(20, 20, 260, 260)
領域を超えることはありません。ビューの境界の外に自由に追加して表示できるのは CALayer だけであるというのは本当ですか? (20, 20, 260, 260)
そもそもグラフィック コンテキストがこれに限定されているためでしょうか。もしそうなら、drawRect
上、下、左、右の 4 つの方向すべてで、ビューの境界の外にコンテンツを表示する方法はありますか?