その中にUIScrollView
他の多くのサブビューがあります。サブビューのほとんどはUITextView
's であり、それらがすべて読み込まれると、スクロールとすべてがうまくいきます。UIView
しかし、ビューの 1 つで、 aMKMapView
とa をその中にロードしUITextView
ています。ユーザーが をスクロールしたい場合、またはそのコンテンツUIScrollView
に触れることはできません。ユーザーが をクリックして別のマップに移動できるようにする必要があるため、NO にUIView
設定することはできません。これに関する提案はありますか?上記のコードを以下に示します。setUserInteractionEnabled
MKMapView
UIViewController
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
! ただし、ここでの本当の解決策が何であるかはわかりません。編集を無効にするだけです。