gpt4 book ai didi

ios - 如何在UIScrollView缩放上调整和重新绘制UITextView的大小?

转载 作者:行者123 更新时间:2023-12-01 16:45:03 24 4
gpt4 key购买 nike

我有一个像这样UIView-> UIScrollView-> DrawingView(UIView)UITextView层次结构。当我缩放UIScrollView时,它还会缩放UITextView,从而导致文本模糊和字体大。我需要使用UITextView的相同大小调整框架,但不应模糊且使用正确的字体。

在图像中显示我真正需要的。

在缩放之前,我的UITextView应该看起来像:

当我缩放时,它看起来像这样:

这是我希望UITextView在缩放/或最大缩放级别时应该看起来像的图像。

这是我的代码,每个“TRY”代码都尝试了一次,但是没有用。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return self.drawingView;
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
// TRY 1
self.textView.bounds = CGRectMake(0, 0, self.textView.frame.size.width*scale, self.textView.frame.size.height*scale);

// TRY 2
scale *= [[[scrollView window] screen] scale];
self.textView.contentScaleFactor = scale;

// TRY 3
CGRect frame = self.textView.frame;
frame.size.width = frame.size.width * scale;
frame.size.height = frame.size.height * scale;
self.textView.frame = frame;
self.textView.contentScaleFactor = 1.0f;

// TRY 4
self.textView.transform = CGAffineTransformScale(CGAffineTransformIdentity, scale, scale);

// TRY 5
scaleTracker *= scale;
[self.drawingView setTransform:CGAffineTransformIdentity];
self.drawingView.frame = CGRectMake((int)self.drawingView.frame.origin.x,
(int)self.drawingView.frame.origin.y,
(int)(self.drawingView.frame.size.width * scaleTracker),
(int)(self.drawingView.frame.size.height * scaleTracker));

NSLog(@"TextView Frame : %@",NSStringFromCGRect(self.textView.frame));
NSLog(@"DrawingView Frame : %@",NSStringFromCGRect(self.drawingView.frame));
}

最佳答案

处理UITextView缩放,您可以执行以下操作:

    //scale :zoomScale
for (UIView *subView in self.txtContent.subviews) {
subView.contentScaleFactor = scale * [UIScreen mainScreen].scale;
}

关于ios - 如何在UIScrollView缩放上调整和重新绘制UITextView的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20718051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com