У меня есть UIScrollView с требованием, чтобы при масштабировании contentSize.height оставался прежним. Масштабирование с 200x100 должно приводить к созданию нового contentSize 400x100 вместо 400x200, например. Я бы хотел сделать свой собственный чертеж, пока пользователь масштабируется.Реализация пользовательского масштабирования для UIScrollView
Я не думаю, что для достижения этой цели я могу использовать обычное масштабируемое поведение UIScrollView, поэтому я стараюсь сворачивать самостоятельно. (Я мог бы просто позволить этому сделать свое дело, а затем перерисовать мое содержимое, когда -scrollViewDidEndZooming: withView: atScale: получает вызов, но это было бы не очень красиво).
В настоящее время я подклассы UIScrollView и пытаюсь сделать свой собственный масштаб изображения, когда два пальца на экране:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[super touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
Я думал, что переопределение touchesBegan: withEvent :, touchesMoved: withEvent :, touchesEnded: withEvent: и touchsCancelled: withEvent: таким образом должен работать, но это не так.
Ранее неудачная попытка была поместить прозрачный вид сверху на Scrollview и отправить штрихи, которые я не заинтересован в к Scrollview:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[self.theScrollView touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
Любая помощь будет оценена.
Спасибо, Томас
ОК, спасибо, я попробую перехватить setTransform и перерисовать вид в конце масштабирования. Я могу попытаться полностью перерисовать мой взгляд и посмотреть, как выглядит производительность. Сегодня я не смогу сделать это, но я дам вам знать, как я пойду. –
Я сделал быстрый тест, перехватил setTransform :, и каждый раз пытался перерисовывать мои просмотры контента. Вы правы, это не вариант на устройстве по соображениям производительности. Я поеду с вашим рекомендуемым подходом, позволяющим масштабировать UIScrollView, а затем перерисовать в -scrollViewDidEndZooming: withView: atScale :. Благодарю. –