nop*_*ole 20 calayer uikit uiview ios
我从某种角度考虑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));
}
Run Code Online (Sandbox Code Playgroud)
我使用UI和CG分别绘制一个矩形,以防万一有效,另一个无效.并添加了viewDidAppear以下视图:
- (void)viewDidAppear:(BOOL)animated {
MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(20, 20, 260, 260)];
[self.view addSubview:myView];
}
Run Code Online (Sandbox Code Playgroud)
但无论如何,彩色盒子都不会超越该(20, 20, 260, 260)区域.只有CALayers可以自由添加并出现在视图范围之外,这是真的吗?是不是因为图形上下文仅限于此(20, 20, 260, 260)开头?如果是这样,有没有办法让drawRect内容出现在视图的界限之外,在所有四个顶部,向下,向左,向右的方向上?
小智 25
您的问题是"drawRect"会自动剪裁到您正在绘制的视图中.
而不是在视图本身中进行绘制,而是将第二个(子)视图添加到第一个视图,即第一个视图的边界之外.这将允许您执行依赖于第一个视图的放置的绘图,但是在第一个视图的边界之外.
希望这可以帮助.
Lef*_*ris -3
在已添加滚动视图的视图上尝试此操作:
self.scrollView.backgroundColor = [UIColor darkGrayColor];
self.scrollView.layer.cornerRadius = 10.0f;
self.scrollView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
它应该根据需要显示带有圆角的灰色滚动视图。
请记住您需要导入 QuartzCore FrameWork
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |