2010-05-20 4 views
1

Я пробовал разные вещи за последние несколько дней, и у меня закончились идеи, поэтому я ищу помощь. Ситуация заключается в том, что я показываю свое представление магазина покупок в приложении после нажатия пользователем кнопки. Нажата кнопка, отображается вид. Магазин показывает хорошо. Внутри этого представления у меня есть несколько ярлыков с описаниями продукта, а затем под ними у меня есть цена и кнопка «Купить», которая запускает покупку в приложении. Проблема в том, что я поворачиваю телефон в альбомную, кнопка Buy больше не отвечает, странно. Прекрасно работает в портрете.UIButton перестает отвечать после перехода в ландшафтный режим - iPhone

Поведение в ландшафте, когда я касаюсь кнопки, ничего. Он, кажется, не нажимает и не выбирается, или что-то еще, просто не реагируя на мои прикосновения. Но тогда, когда я поворачиваюсь к портрету или даже перевернутому портрету, он отлично работает.

Вот грубая структура моего представления в IB, все вращающиеся и макет устанавливаются в IB. Я установил авторезистор в IB, чтобы все выглядело нормально в ландшафте, а кнопка «Купить» немного расширилась горизонтально. Единственное манипулирование макетами, которое я выполняю в моем коде, - после загрузки, я устанавливаю размер содержимого прокрутки.

File Owner with view set to the scrollView  
/scrollView 
----/ view 
--------/ label 
--------/ label 
--------/ label 
--------/ label 
--------/ label 
--------/ label 
--------/ label 
--------/ label 
--------/ uibutton (Buy) 

После изменения ориентации я распечатал userInteractionEnabled свойство Scrollview и кнопки, и они оба были ИСТИНА во всех направлениях.

Идеи? Или, может быть, другой способ отображения кнопки покупки, которая не будет нефункциональной? Я уже начал ветку, которая играет с панелью инструментов и помещает кнопку покупки там, но я не могу заставить бара оставаться на месте во время прокрутки.

ответ

1

Поскольку я не мог заставить UIButton работать правильно, я просто сломал кнопку и создаю новое родительское представление, содержащее все, что у меня есть сейчас, а затем добавление панели инструментов под ним и размещение кнопки там. Эта проблема действительно не выглядела так, как будто это оправдывало это большую часть моего времени, поэтому я просто пошла по-другому.

File Owner with view set to the parent view 
/view 
----/ scrollView 
--------/ view 
------------/ label 
------------/ label 
------------/ label 
------------/ label 
------------/ label 
------------/ label 
------------/ label 
------------/ label 
----/ toolBar 
--------/ barbutton (Buy) 
0

Mmmm, возможно, кнопка находится внутри UIView, которая не вращается, как устройство, а затем вы просматриваете свою кнопку, как всегда, но из контейнера просмотра, который распространяет касания.

Вы можете проверить в IB якорь представления в своих контейнерах или сделать кодирование.

+0

Если у вида есть bgcolor, и я могу видеть цвет за кнопкой, означает ли это, что кнопка находится в пределах видимости? Вот что я вижу.Поэтому, если я могу предположить, что кнопка находится в пределах представления, какие другие причины могут привести к тому, что штрихи не будут переданы? В ландшафте кнопка падает ниже экрана, к которому я могу перейти, прокручивая. Может ли прокрутка иметь какое-либо отношение к этому? – casey

+0

Да, если вы видите bgcolor, тогда кнопка находится в представлении. Я не знаю, в чем проблема, может быть, проблема скроллера. Сожалею. – emenegro

3

Это звучит, как вы получили вокруг вопроса, но только в том случае, другие приходят смотреть, я столкнулся с подобным вопросом и нашел решение.

Я программно добавлял scrollview. Затем я бы назвал setContentSize, чтобы убедиться, что scrollview был таким же высоким, как и представление, которое я хотел показать. Представление, которое я показывал, было настроено как с UIViewAutoresizingFlexibleWidth, так и с UIViewAutoresizingFlexibleHeight.

Когда я повернул в ландшафтном режиме во время тестирования, это выглядело так, как будто у меня было все, но я ничего не мог щелкнуть, когда прокручивал вниз. Я думаю, проблема заключалась в том, что, поскольку моя подзадача была настроена на гибкую высоту, она уменьшалась вертикально, когда scrollview сокращался. Возможно, я все еще видел это так, как ожидалось, потому что я не был обрезкой или чем-то еще?

В любом случае, как только у меня был только мой подъярус, у вас будет гибкая ширина, все будет работать снова. Вы должны иметь возможность отключать гибкую высоту программно или в построителе интерфейса (стрелка в поле, указывающая вверх и вниз).

Смежные вопросы