UIScrollView отправляет касания в подпредставления

Примечание:Я уже читал некоторые вопросы о UIScrollViewотправке касаний в подпредставления(это включено, и хотя я проголосовал, это больше не работает, как я предполагал ).

Что у меня есть:У меня UIScrollViewс кастомнымUIView(назовем это А)внутри которого покрывается весь UIScrollView. Мне также разрешено размещать другие пользовательские UIViewsвнутри A .

В коде я делаю это:

[scrollView setDelaysContentTouches:YES];
scrollView.canCancelContentTouches = NO;

Что происходит:На данный момент моя единственная проблема заключается в том, что если я хочу переместить подпредставление внутри A , я должен коснуться его, подождать, а затем переместить. Именно так, как указано здесь:

Now, the behaviour changes depending on the "length in time" of the first touch on the UIView. If it's short, then the relative dragging is managed as it was a scroll for the UIScrollView. If it's long, then I'm getting the touchesMoved: events inside my UIView.

Чего я хочу:Подпредставления внутри A всегда должны иметь приоритет, и мне не нужно трогать и ждать. Если я коснусь A , а не его подвида, я хочу, чтобы UIScrollViewполучал касания, такие как панорамирование и перемещение (, contentSizeбольше, чемframe).


Редактировать 1.0

Единственная причина, по которой у меня есть этот вид A внутри общего UIScrollView, заключается в том, что я хочу иметь возможность увеличивать/уменьшать масштаб вида A . Итак, я делаю следующее:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return customView; // this is the A view
}

В начале у меня не было представления A внутри UIScrollView, и единственное, что я сделал, это добавил A в качестве подвида моего корневого представления UIViewController'sи все такое. хорошо прошло. Если есть другой способ увеличить/уменьшить масштаб, я с радостью приму ответ.

9
задан Community 23 May 2017 в 12:25
поделиться