Программируем под IOS
Anonymous
React-Native PencilKit: штрихи по краям холста мерцают на пару секунд, когда пользователь рисует после увеличения масшта
Сообщение
Anonymous » 31 окт 2024, 06:15
Вот исходная часть кода.
Область содержимого CanvasView можно панорамировать и масштабировать.
При рисовании в области содержимого при полном уменьшении масштаба это прекрасно.
При увеличении масштаба -в том случае, когда пользователь начнет рисовать, штрихи у нижнего и верхнего края области контента будут мерцать пару секунд. Почему он это делает?
Код: Выделить всё
- (UIView *)view {
CGFloat deviceWidth = [UIScreen mainScreen].bounds.size.width;
CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height;
CGRect viewRect = CGRectMake(0, 0, deviceWidth, deviceHeight);
_canvasView = [[CanvasView alloc] initWithFrame:viewRect];
_canvasView.zoomScale = 1.0;
_canvasView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0];
_canvasView.drawingPolicy = PKCanvasViewDrawingPolicyAnyInput;
_canvasView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
_canvasView.multipleTouchEnabled = true;
_canvasView.delegate = self;
return _canvasView;
}
RCT_EXPORT_METHOD(setupCanvas
: (nonnull NSNumber *)viewTag imagePath
: (NSString *)imagePath width
: (CGFloat)width height
: (CGFloat)height traceImagePath
: (NSString *)traceImagePath traceImageSize
: (nonnull NSNumber *)traceImageSize) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Set Toolpicker");
[self setupToolPicker];
NSLog(@"Set Canvas size");
[self setCanvasDimensions:width height:height];
if (imagePath != (id)[NSNull null] && imagePath.length != 0) {
NSLog(@"Draw on image");
[self drawOnImage:imagePath];
}
});
}
- (void)setCanvasDimensions:(CGFloat)width height:(CGFloat)height {
[self->_canvasView setContentSize:CGSizeMake(width, height)];
CGFloat canvasRepWidth = [[UIScreen mainScreen] bounds].size.width;
self->_canvasView.minimumZoomScale = canvasRepWidth
self->_canvasView.maximumZoomScale = 4.0;
self->_canvasView.zoomScale = canvasRepWidth / width;
self->_canvasView.contentOffset = CGPointZero;
}
Подробнее здесь:
https://stackoverflow.com/questions/791 ... r-a-couple
1730344544
Anonymous
Вот исходная часть кода. Область содержимого CanvasView можно панорамировать и масштабировать. При рисовании в области содержимого при полном уменьшении масштаба это прекрасно. При увеличении масштаба -в том случае, когда пользователь начнет рисовать, штрихи у нижнего и верхнего края области контента будут мерцать пару секунд. Почему он это делает? [code]- (UIView *)view { CGFloat deviceWidth = [UIScreen mainScreen].bounds.size.width; CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height; CGRect viewRect = CGRectMake(0, 0, deviceWidth, deviceHeight); _canvasView = [[CanvasView alloc] initWithFrame:viewRect]; _canvasView.zoomScale = 1.0; _canvasView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0]; _canvasView.drawingPolicy = PKCanvasViewDrawingPolicyAnyInput; _canvasView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; _canvasView.multipleTouchEnabled = true; _canvasView.delegate = self; return _canvasView; } RCT_EXPORT_METHOD(setupCanvas : (nonnull NSNumber *)viewTag imagePath : (NSString *)imagePath width : (CGFloat)width height : (CGFloat)height traceImagePath : (NSString *)traceImagePath traceImageSize : (nonnull NSNumber *)traceImageSize) { dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"Set Toolpicker"); [self setupToolPicker]; NSLog(@"Set Canvas size"); [self setCanvasDimensions:width height:height]; if (imagePath != (id)[NSNull null] && imagePath.length != 0) { NSLog(@"Draw on image"); [self drawOnImage:imagePath]; } }); } - (void)setCanvasDimensions:(CGFloat)width height:(CGFloat)height { [self->_canvasView setContentSize:CGSizeMake(width, height)]; CGFloat canvasRepWidth = [[UIScreen mainScreen] bounds].size.width; self->_canvasView.minimumZoomScale = canvasRepWidth self->_canvasView.maximumZoomScale = 4.0; self->_canvasView.zoomScale = canvasRepWidth / width; self->_canvasView.contentOffset = CGPointZero; } [/code] [img]https://i.sstatic.net/f3SWiK6t.gif[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/79143366/react-native-pencilkit-strokes-at-the-edges-of-canvasview-flicker-for-a-couple[/url]