0

问题是...

我有一个父视图,在其中我绘制了一个由许多 CGPaths 组成的平面图。好吧,在这个应用程序中,我可以将一个子视图插入到父视图中,其中绘制了其他 CGPath(例如代表椅子的线条)。现在。我会复制像 UITextView 那样的缩放效果,当有人点击向下,按住点击,然后一个手玻璃出现,内容被缩放。

例如,我将放置一个子视图,其中背景表示在子视图矩形中剪辑并缩放为 x2 的父内容。这样,子视图背景就像父视图上的手玻璃。

我该如何实现呢?

我考虑过获取父上下文,将其传递给子视图,并使用矩形子视图剪辑父上下文。但什么也没有发生。我对 CGImageContext 表示红色,女巫对父 CGContext 进行图像表示,并将其传递给子视图,但我不知道如何实现它。而且,我不知道这是否正确。

希望有人可以帮助我(代码示例会很棒)!

对不起我的英语不好。我尽力了:)

4

1 回答 1

1

问题自己解决了!

在子视图drawrect:方法中,我输入了以下代码:

- (void)drawRect:(CGRect)rect {
  // here we're just doing some transforms on the view we're magnifying,
  // and rendering that view directly into this view.
  // By 'touchPoint' i can select the exact portion of superview which
  // i want render in subview

   CGContextRef context = UIGraphicsGetCurrentContext();
   CGContextTranslateCTM(context,1*(self.frame.size.width*0.5),1*(self.frame.size.height*0.5));
   CGContextScaleCTM(context, 1.5, 1.5);
   CGContextTranslateCTM(context,-1*(touchPoint.x),-1*(touchPoint.y));
   [self.superview.layer renderInContext:context];
}

希望这可以帮助别人:)

于 2012-06-07T11:24:44.583 回答