2014-06-16 42 views
0

我有以下层次结构: 视图 滚动视图(与滚动和变焦启用) containerview ImageView的(与地图),用于按钮 视图对于导航面板同步UIViews的层次结构,并CALayers

在 观点图像视图我必须提出一些兴趣点(取决于用户选择的类别): 问题是: 如果我将它们附加到容器视图,它们获取正确的位置非常容易,但是当缩放它们时放大图像,他们应该保持不变如果我将它们附加到主视图,我有两个问题: 1在滚动视图和查看按钮之间找到它们的层次结构位置, (他们得到的应用程序的顶部,应该刚刚在地图上,但低于控制面板,按钮等 2协调缩放和滚动 - 与convertPoint完成:toView 如果我添加一个视图(兄弟的它们显示正常,但我没有用户输入(他们没有收到 触摸) 如果我将该兄弟子视图转换为CALayer,我没有得到sublayers(POIs)显示。 (1)我试图通过应用CGAffineTransform invertedTransform = CGAffineTransformInvert(transform);来覆盖容器视图并覆盖setTransform;但我有问题通过它的意见引用它的阵列

你会建议在这种情况下做什么? 非常感谢!

S.

+0

如果你已经解决了自己的问题,你会过得更好书面答复回答你自己的问题并接受它,而不是编辑问题。 – jrturton

+0

嗨jrturton,非常感谢您的评论。我是新来的。祝你有美好的一天 – user63391

回答

0

我终于添加子视图containerView,我已经子类是:

- (void)setTransform:(CGAffineTransform)transform 
{ 
    [super setTransform:transform]; 

    CGAffineTransform invertedTransform = CGAffineTransformInvert(transform); 
    for (UIView *view in self.subviews) 
    { 
     if ([view isKindOfClass:[MarkerClass class]]) { 
      [view setTransform:invertedTransform]; 
     } 
    } 
} 

唯一的问题是,在我缩放containerView,标记的短尺寸版本出现在屏幕上。

经过一段时间后,我发现我会覆盖addSubview也得到这样一个初始转换:

-(void)addSubview:(UIView *)view { 
    [super addSubview:view]; 
    if ([view isKindOfClass:[MarkerClass class]]) { 
    CGAffineTransform invertedTransform = CGAffineTransformInvert(self.transform); 
     [view setTransform:invertedTransform]; 
    } 
}