0

イメージビューとその下にテーブルビューがあるビューがあります。イメージビューには、人体のイメージが含まれています。ここでやりたいことは、画像を 3 つの部分に分けることです: 頭部、胸部、腹腔です。テーブルビューには 3 つの行もあり、それぞれが上記の本文のセクションに対応しています。これらの領域のいずれかを選択またはクリックすると、テーブルの対応する行をスクロールして、詳細ビューとして機能する別のビューコントローラーに移動しますコントローラ。たとえば、head を選択すると、head を詳しく説明している別のページに移動したいとします。行を選択すると、同じ効果が得られます。

4

1 に答える 1

1

UITapGestureRecognizerこれは、イメージ ビューにアタッチされたインスタンスを使用して簡単に行うことができます。まず、 を に設定する必要がありUIImageViewます。ジェスチャ レコグナイザーをアタッチしたら、ジェスチャ ハンドラーでタッチをその領域に解決する必要があります。userInteractionEnabledYES

- (void)tap:(UITapGestureRecognizer *)tapGesture {
    CGPoint locationInView = [tapGesture locationInView:tapGesture.view];

    /* Resolve the location here */
}

解像度は、領域をどのように定義するかに基づいています。それらが単なる長方形の場合、3 つのCGRectオブジェクトをインスタンス変数として宣言し、それらを適切に設定して、次のようにします。

if ( CGRectContainsPoint(headRect, locationInView) ) {
    /* It's a head, load its view controller */
} else if ( ... ) {
    ....

または、領域がもう少し複雑な場合は、UIBezierPathまたはを使用しますCGPathRef

于 2011-07-05T09:29:06.880 に答える