用coreGraphics绘制的iOS8线在UIImageView中随着时间的推移逐渐消失

时间:2014-10-06 15:22:01

标签: ios objective-c uiimageview core-graphics

我有一个非常奇怪的问题。在iOS8中,仅在ipad 2上(在iOS7中适用于所有设备和iOS8中的迷你版本),我拥有的签名面板会使用户将手指放在UIImageView上的时间越长,就会消失线条/绘制对象。

谷歌搜索没有任何想法,任何想法?以下是用户点击绘图的代码。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
swiped = YES;

UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:self.view];
currentPoint.y -= 20;

UIGraphicsBeginImageContext(self.view.frame.size);
[_drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
_drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

lastPoint = currentPoint;

}

1 个答案:

答案 0 :(得分:0)

我一直有同样的问题,刚刚发现原因。

我的UIImageView位于UITableViewCell中,UIImageView的自动调整掩码设置为UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth。

事实证明,删除UIViewAutoresizingFlexibleHeight,而不是为UIImageView设置显式高度,解决了这个问题。

我怀疑这取决于iOS8中表格单元格的不同行为,因为我知道现在有一个自动调整大小的功能(我还没有使用它,因为我有自己的实现)。我怀疑这会对弹性高度调整大小的掩模造成严重破坏,导致失真。