2009-08-18 1 views
2

Я создал представление для приложения iPhone в Interface Builder. Это UIScrollview с UIView и UIButton на UIView. Единственный код, который у меня есть, заключается в настройке contentSize прокрутки в 320x550 в методе viewDidLoad класса File Owner xib. Когда кнопка находится в пределах нормальной области обзора (320x480), кнопка реагирует как обычно, но если она находится за пределами этих границ в Interface Builder, кнопка не будет отвечать, когда я перейду к ней и нажмите кнопку.iPhone UIScrollview: кнопка не отвечает, когда находится ниже 480 пикселей на дочернем прокрутке. UIView

Что мне не хватает? Я полагаю, что это может быть что-то, что мне нужно установить в UIView. Но я не уверен, что это такое.

ответ

6

Ваш UIButton не будет отвечать, даже если он виден, потому что он не находится в пределах родительского вида. Вы можете видеть объект за пределами его родительского представления, потому что это поведение UIView по умолчанию для рисования всех подвью (clipToBounds = NO)

Чтобы посмотреть правду, попробуйте этот код.

UIView *yourUIView = ... 
yourUIView.clipsToBounds = YES; 
yourUIView.backgroundColor = [UIColor cyanColor]; 

Вы больше не увидите свой UIButton.

Чтобы исправить это, увеличьте свой UIView.

2

У меня была та же проблема, что и у человека, который разместил вопрос. Благодаря первому ответу, у меня был намек на то, что делать. Я увеличил высоту представления, отрегулировав рамку. Это, по-видимому, должно быть сделано в коде. Однако, когда это было сделано, панель инструментов внизу была больше не видна. Поэтому, прежде чем настраивать высоту представления, я хватаю позицию панели инструментов. Затем, отрегулировав высоту представления, я сброшу положение панели инструментов. Теперь все хорошо.

+0

Регулировка рамки чего? Scrollview? – Morkrom

+0

Регулировка рамки представления содержимого кадра (т. Е. UIView, который находится внутри кадра). –