Как сделать так, чтобы кнопки были маленькими за маленьким UIView? - PullRequest
1 голос
/ 01 октября 2011

У меня странная проблема. У меня 3 уровня просмотров:

- MainView
    - containerview
        - subview
            -some buttons
    -some buttons

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

 [UIView animateWithDuration:0.4 //begin animation
                      delay:0.1 
                    options:UIViewAnimationCurveEaseIn 
                 animations:^{
                     [UIView transitionWithView:containerview 
                                       duration:0.4
                                        options:UIViewAnimationOptionTransitionCurlUp
                                     animations:^{ [subView removeFromSuperview] ;}
                                     completion:nil];
                     containerview.alpha = 0;

                 } 
                 completion:^(BOOL finished){
                     saveButton.hidden = true;
                     saveDAVButton.hidden = true;    
                     saveDBButton.hidden = true; 
                     loadButton.hidden = false;
                     openDAVButton.hidden = false;    
                     openDBButton.hidden = false;
                     [UIView transitionWithView:containerview 
                                       duration:0.4
                                        options:UIViewAnimationOptionTransitionCurlDown
                                     animations:^{ [containerview addSubview:subView] ;}
                                     completion:nil];
                     containerview.alpha = 1;
                 }
 ];

Эта анимация работает отлично. Единственная проблема заключается в том, что даже когда подпредставление видно (так же как и кнопки подпредставления), я могу нажимать кнопки позади подпредставления! (кнопки из основного вида). Это делает кнопки из подпредставления трудными в использовании, поскольку они перекрывают кнопки из masterview.

Есть идеи, как сделать элемент позади подпредставления недоступным для клика?

Я уже пытался отключить и скрыть кнопки из основного вида, но даже тогда я не могу использовать перекрывающиеся кнопки из подпредставления!

Спасибо за вашу помощь.

UPDATE Я нашел в чем проблема. На самом деле, я снова должен сделать свой пост более понятным. Вот иерархия представлений, с их позицией и размером:

- MainWindow (0,0,768,1024)
    - MainView (0,0,768,80) (this is actually a top tool bar)
        - containerview (500,40,120,80)
            - subview (500,40,120,80) (will act as a post it : curl up and down...)

Итак, проблема в том, что нижняя часть моего подпредставления выходит за пределы MainView. Ничего не происходит, когда щелчок по кнопке размещается внизу подпредставления. На самом деле, я нажимаю на MainWindow! Хафл подпредставления не может быть кликабелен ...

Перед изменением всего моего кода, есть ли способ сделать доступным нижнюю часть подпредставления, даже если он является частью MainView? Или мне нужно переместить его в MainWindow?

Еще раз спасибо ...

Ответы [ 3 ]

1 голос
/ 01 октября 2011

Возможно, проблема в том, что ваши кнопки в главном окне находятся перед контейнером. Попробуйте:

[MainView bringSubviewToFront:containerView];

Или в конструкторе интерфейсов измените порядок containerView и кнопок, которые находятся на главном экране.

Но я не знаю, установка скрытых кнопок должна сделать их скрытыми и не щелкающими и не позволять им блокировать прикосновения к видам за ними.

1 голос
/ 01 октября 2011

Переключение свойства представления userInteractionEnabled.

0 голосов
/ 04 октября 2011

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

...