gpt4 book ai didi

objective-c - 在缩放 UIScrollView subview 时保持恒定的线宽

转载 作者:行者123 更新时间:2023-12-01 18:02:52 25 4
gpt4 key购买 nike

我有一个缩放 UIScrollView包含 UIView其中包含一些自定义 UIViews , 类别 MyRectangleView . ScrollView还有这些rectangleView s 得到一个指向通用自定义 UIViewController 的指针, MyViewController .

是否可以渲染这些自定义 View ,以便在 ScrollView 缩放时它们看起来会增长,而不是看起来缩放?

我确实覆盖了 drawRect: ,我已经设法让它们改变它们的高度,但在 ScrollView 缩放时保持它们的宽度,通过实现 scrollViewDidZoom:myViewController并存储当前 zoomScale在可从 rectangleView 访问的属性中s,然后将它们的宽度除以 zoomScale .

我对线宽做了同样的事情,但是由于所有的缩放,结果看起来很模糊(尽管线宽在视觉上或多或少保持不变)。

有一个更好的方法吗?

如何将自定义 UIView 实现为提供恒定线宽且不会模糊的缩放 UIScrollView 的 subview ?

我想到的一种解决方案是使缩放 View 不可见,并在 scrollView 之上创建其他 View ,以从中获取它们的大小,但如果可能的话,我宁愿避免这种情况。

最佳答案

我已经成功地使用了另一种方法。我在子类 UIView 中写了一个自定义方法

-(void)resize:(CGFloat)scale {    
self.transform = CGAffineTransformMakeScale(1/scale, 1/scale);

}

其中 scale 是 UIScrollView 当前的 zoomScale。此方法在父 View 中从以下调用
-(void)scrollViewDidZoom:(UIScrollView *)_scrollView {

for (PushPin *pushpin in drawingPlaceholder.subviews) {
if ([pushpin isKindOfClass:[PushPin class]]) {
[pushpin resize:_scrollView.zoomScale];
}
}

}

关于objective-c - 在缩放 UIScrollView subview 时保持恒定的线宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175160/

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