2014-06-16 43 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]; 
    } 
}