Кнопки отключены в ScrollView - iOS Swift

ios swift scroll uiscrollview

4258 просмотра

3 ответа

347 Репутация автора

У меня есть кнопка в представлении внутри представления в ScrollView:

UIScrollView
-ContentView
--PhoneNumberView
---UIButton

Если возможность прокрутки ScrollView отключена, кнопка обычно щелкает. Однако, если прокрутка включена, кнопка кажется отключенной.

Вот как я отправил размер содержимого ScrollView:

var contentRect = CGRectZero;
for view in self.contentView.subviews {
     contentRect = CGRectUnion(contentRect, view.frame)
}
scrollView.contentSize = contentRect.size
scrollView.contentSize.height = scrollView.contentSize.height+20

и я также установил эти свойства

scrollView.userInteractionEnabled = true
scrollView.exclusiveTouch = true
scrollView.canCancelContentTouches = true
scrollView.delaysContentTouches = true

и я наконец попытался создать подкласс UIScrollView, и я закончил с этим:

class myScrollView: UIScrollView {

    override func touchesShouldCancelInContentView(view: UIView) -> Bool {
        return false
    }
}

но все равно кнопка не активна, когда есть прокрутка.

Как я могу это исправить?

Автор: Ali Alebrahim Источник Размещён: 19.07.2016 09:47

Ответы (3)


0 плюса

3810 Репутация автора

Установив

scrollView.exclusiveTouch = true

вы указываете scrollView обрабатывать только касания, чтобы касания не доходили до его подпредставлений, поэтому установите для этого свойства значение false

Эта строка кода

scrollView.delaysContentTouches = true

в основном задерживает прикосновения к подпредставлениям прокрутки, если вы хотите, чтобы кнопка отвечала немедленно, тогда также установите для этого свойства значение false.

Автор: Juri Noga Размещён: 19.07.2016 09:53

3 плюса

2378 Репутация автора

Решение

Установите цвет ContentView& Scrollview. Я думаю, что вы делаете неправильно contentsize. И ваш PhoneNumberViewвне contentsizeвысоты.

РЕДАКТИРОВАТЬ

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Автор: Bhadresh Mulsaniya Размещён: 19.07.2016 10:03

0 плюса

49 Репутация автора

Перетащите все подпредставления из ContentView в ScrollView. И скрыть ContentView. Убедитесь, что ContentView (ContainerView scrollView) также должен быть подвидом scrollView.

Пример:
UIScrollView
--PhoneNumberView
--- UIButton -ContentView
(это представление должно быть скрыто )

Автор: Jeet Размещён: 24.08.2017 04:33
Вопросы из категории :
32x32