Примечание:Я уже читал некоторые вопросы о 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
и все такое. хорошо прошло. Если есть другой способ увеличить/уменьшить масштаб, я с радостью приму ответ.