1

私は、別の uiview A の拡大された部分であることを意図した uiview B を持っています (「touchPoint」の周りの領域が拡大されています)。「touchPoint」が変更されたら、B の表示を更新します。B に次の関数があり、(B.setNeedsDisplay() を呼び出すと) 更新されますが、色あせた背景画像のように、古いコンテンツが何らかの形で表示されたままになります。古いコンテンツがまだ表示されている理由と、その効果が薄れている理由を知っていますか? 拡大している部分の背景が透明だからでしょうか?修正方法は?

   override func drawRect(rect: CGRect)
   {
      let context: CGContextRef = 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))
      viewToMagnify.layer.renderInContext(context)
   }

画像を投稿したかったのですが、まだ十分な stackOverflow ポイントがありません... :-)

ご指摘ありがとうございます。

4

1 に答える 1

0

私自身の質問に対する答えを見つけました。

拡大ビューのコンテキストは、drawRect 関数の開始時に次のようにクリアする必要がありました。

CGContextClearRect(context, rect)

于 2015-09-22T00:50:10.907 に答える