0

その中にUIScrollView他の多くのサブビューがあります。サブビューのほとんどはUITextView's であり、それらがすべて読み込まれると、スクロールとすべてがうまくいきます。UIViewしかし、ビューの 1 つで、 aMKMapViewとa をその中にロードしUITextViewています。ユーザーが をスクロールしたい場合、またはそのコンテンツUIScrollViewに触れることはできません。ユーザーが をクリックして別のマップに移動できるようにする必要があるため、NO にUIView設定することはできません。これに関する提案はありますか?上記のコードを以下に示します。setUserInteractionEnabledMKMapViewUIViewController

    CGRect dealDescRect = CGRectMake(10, 10, delegate.scrollView.frame.size.width - 22 - 20, 120);
    mapView = [[MKMapView alloc] initWithFrame:dealDescRect];
    mapView.layer.cornerRadius = cornerRadius;
    mapView.scrollEnabled = NO;
    mapView.zoomEnabled = NO;

    BOOL result = [self loadAddressIntoMap];
    if (result == TRUE) {
        UITapGestureRecognizer* recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
        [mapView addGestureRecognizer:recognizer];
    }

    UITextView *addressTextView = [self generateTextView:addressText :5];
    addressTextView.editable = NO;
    [addressTextView setFont:[UIFont systemFontOfSize:fontSize]];
    [addressTextView setUserInteractionEnabled:NO];
    CGRect addressTextViewFrame = addressTextView.frame;
    addressTextViewFrame.origin.x = 0;
    addressTextViewFrame.origin.y = 130;
    addressTextViewFrame.size.height = addressTextView.contentSize.height + 15;
    addressTextView.frame = addressTextViewFrame;

    CGRect viewRect = CGRectMake(10, 145, delegate.scrollView.frame.size.width - 22, addressTextView.contentSize.height + 135);
    viewRect.origin.x = 11;
    viewRect.origin.y = startTop;
    UIView *view = [[UIView alloc] initWithFrame:viewRect];
    view.layer.cornerRadius = cornerRadius;

    [view setBackgroundColor:[UIColor whiteColor]];
    [view addSubview:mapView];
    [view addSubview:addressTextView];

編集

奇妙な理由で、UIViewを a に変更すると、うまくいきますUITextView! ただし、ここでの本当の解決策が何であるかはわかりません。編集を無効にするだけです。

4

1 に答える 1

1

私だったら、ジェスチャ レコグナイザーを使用してマップ上のタップを監視する代わりに、カスタム タイプ (UIButtonTypeCustom) の UIButton を作成し、背景もテキストも指定せずにマップの上に配置します。地図と同じフレーム。

これには、ユーザーがマップを操作したり、必要に応じて次のページに移動したり、ユーザーがマップ上でスクロールを開始した場合でもスクロールを開始したりできないという利点があります。

于 2013-03-23T16:44:21.280 に答える