我有一个UIView在一个scrollView中,它包含大约100个子视图。这些子视图看起来都一样,是同一个类的实例。我有一个变换,想要将其应用于每个子视图。但是变换需要随着缩放比例的改变而改变。
如何最好地应用变换到所有视图上?目前,我正在实现layoutSubviews,获取子视图数组,并将每个子视图的变换设置为新的变换。
有没有更优化的方法来做到这一点?
更新:
我想要变换的视图是地图上的标记(pins)。当我使用scrollView进行缩放时,它们需要缩小(即它们对用户看起来大小相同),并保持锁定在相同的位置。
如何最好地应用变换到所有视图上?目前,我正在实现layoutSubviews,获取子视图数组,并将每个子视图的变换设置为新的变换。
有没有更优化的方法来做到这一点?
更新:
我想要变换的视图是地图上的标记(pins)。当我使用scrollView进行缩放时,它们需要缩小(即它们对用户看起来大小相同),并保持锁定在相同的位置。
- (void)layoutSubviews
{
CGAffineTransform transform = CGAffineTransformMakeScale(1.0/self.zoomValue, 1.0/self.zoomValue);
for(UIView *view in self.subviews){
view.transform = transform;
}
}
...
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
self.mapMarkerContainer.zoomValue = scrollView.zoomScale;
[self.mapMarkerContainer setNeedsLayout];
}