2010-01-30 1 views
2

У меня есть UIView в UIScrollView в UIView в .xib, который содержит несколько кнопок. Если я перемещу этот UIView на несколько пикселей с viewWillAppear, кнопки перестанут реагировать на краны.Перемещение UIView, содержащего UIButtons, заставляет эти кнопки перестать отвечать на ответвления

Вот код, я использую, чтобы изменить размер UIScrollView и смещать кнопки вниз:

// adjust the view height to accomodate the resized label 
    scrollView.contentSize = CGSizeMake(320, 367 + expectedLabelSize.height - originalLabelSize.height); 

    // Adjust the location of buttons 
    CGRect buttonsBounds = buttons.bounds; 
    buttonsBounds.origin.y -= expectedLabelSize.height - originalLabelSize.height; //XX 
    buttons.bounds = buttonsBounds; 

Если я закомментировать строку, отмеченную XX, кнопки работают нормально, но в неправильном месте курс.

Если я попробую различное количество пикселей (заменяя expectedLabelSize.height - originalLabelSize.height с жестко запрограммированным значением), я получаю интересные результаты. 10 пикселей отлично работает. 50 пикселей заставляют мою верхнюю кнопку работать нормально, но мой нижний не работает. 100 пикселей, и обе кнопки не работают. (-50) пикселей приводит к тому, что нижняя кнопка работает нормально, но верхняя часть не работает.

Любая идея, что может вызвать проблемы? Должен ли я каким-то образом сообщать кнопкам, что их родительское представление перемещено?

ответ

2

Проблема заключалась в том, что я должен был использовать buttons.frame вместо buttons.bounds. Использование рамки вместо этого устранило проблему.

1

Я предлагаю предоставить родительскому UIView цвет фона и установить стиль кнопки на закругленный. Таким образом, вы можете увидеть, что происходит на экране. (Предполагая, что вы используете прозрачные кнопки поверх некоторого изображения или около того)

+0

хорошее предложение, которое помогло мне выяснить, что происходит. Ура! – emmby