【问题标题】:Keep subviews not transformed during UIScrollView zooming在 UIScrollView 缩放期间保持子视图不转换
【发布时间】:2012-09-26 04:51:23
【问题描述】:

我有 UIScrollView 的内容视图,上面有很多不同的子视图(包括一些标签)。在内容视图的缩放期间,所有这些不同的子视图都按预期进行缩放。但是,我希望 UILabel 子视图的文本不要更改。 我接着试了:

-(void)scrollViewDidZoom:(UIScrollView *)scrollView  {
   // ...
   UILabel* label = (UILabel*)[scrollView viewWithTag:labelTag];
   [label setTransform:CGAffineTransformMakeScale(1/scrollView.zoomScale, 1/scrollView.zoomScale)];  
}

虽然结果文本看起来很难看(尤其是当比例因子很大时),即使我在scrollViewDidEndZooming: 期间调用[label setContentScaleFactor:scaleFactor]。 有什么可能解决这个问题?

【问题讨论】:

    标签: objective-c uiscrollview zooming


    【解决方案1】:

    将 uilabel 放在滚动视图之外。 那会解决你的问题。一切都会远离标签。

    【讨论】:

    • 是的,这种方式比尝试对已经在滚动视图中的文本标签应用反向缩放要容易得多。相反,您应该做的是跟踪滚动视图坐标空间中的点(您必须已经这样做才能将它们布置出来),然后使用... - (CGPoint)convertPoint:(CGPoint)point fromView: (UIView *)view ...找出标签对应位置的方法,例如在滚动视图父级的坐标空间中。然后将它们添加到此父级。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多