UIScrollView
はUIImageView
です。私はこのimageView
のピンを見せたい。 ImageView
のサブビューとしてピンを追加すると、縮尺変換がピンで発生する場合を除いてすべてが素晴らしいです。私はこの振る舞いを望んでおらず、ピンを同じにしておきたい。ピンが上にあるUIScrollView ImageView
私は、ImageViewの上にある別のビューにピンを追加することを選択し、UIScrollView
のサブビューも選択します。あなたが想像するならここのアイデアは地図の上を横切っている層を持つことです、そして、私はそれらをプロットするところにピンを表示します。
ImageView
の場合は、レイヤービューにピンを追加しても表示されません。しかし、この問題は、ImageView
がスケール変換を行ったため、ピンの位置が元の原点x/yと一致しなくなります。
基本的に、これはピン付きの場所のカスタムマップです。ピンを浮かせてImageViewをズームイン/ズームアウトしないようにしようとしていますが、ズームが発生したときにどこに配置したかを覚えておいてください。
いくつかのコード:
scrollView = [[UIScrollView alloc] initWithFrame:viewRect];
scrollView.delegate = self;
scrollView.pagingEnabled = NO;
scrollView.scrollsToTop = NO;
[scrollView setBackgroundColor:[UIColor clearColor]];
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView.bounces = YES;
scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
imageViewMap = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
imageViewMap.userInteractionEnabled = YES;
viewRect = CGRectMake(0,0,imageViewMap.image.size.width,imageViewMap.image.size.height);
//viewRect = CGRectMake(0,0,2976,3928);
[scrollView addSubview:imageViewMap];
[scrollView setContentSize:CGSizeMake(viewRect.size.width, viewRect.size.height)];
iconsView = [[UIView alloc] initWithFrame:imageViewMap.frame];
[scrollView addSubview:iconsView];
コードは、いくつかのイベントで、後にピンを追加します。
[iconsView addSubview:pinIcon];
スケールが発生したときに移動せずにマップ上にピンを移動させる方法を試しています。
これはとても素晴らしいです。私は病気のようです。私はこれを行う他の多くの複雑な方法があります...単純です。私はこれに切り替え、それは素晴らしい動作します。 – malaki1974
素敵なトリック。ピンを自分の視点に置き、代わりに座標を調整することで、同様のことができます。それが多かれ少なかれ演奏されるかどうかわかりません。 –