UIScrollПросмотреть как приложение Twitter для iPad - PullRequest
7 голосов
/ 01 ноября 2010

Я ищу учебник или какие-то идеи по созданию пользовательского контроллера, похожего на тот, который есть в приложении Twitter для iPad, я имею в виду сложенные страницы с главным меню слева. Заранее спасибо за любую помощь !!

Ответы [ 2 ]

11 голосов
/ 09 мая 2011

мы создали фиктивный проект и добавили в github

https://github.com/raweng/StackScrollView

2 голосов
/ 05 февраля 2011

У меня есть решение для этого.

Поместите табличное представление как боковое меню слева. Поместите представление прокрутки на вершине. Добавить содержимое в представление прокрутки.

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

Проблема в том, что табличному представлению не удалось получить событие касания, поскольку оно охватывается представлением прокрутки.

Итак, я реализую подкласс.

@interface UICascadeScrollView : UIScrollView {
        UIView* passthroughView_;
}

@property(nonatomic,assign) IBOutlet UIView* passthroughView;

@end

@implementation UICascadeScrollView

@synthesize passthroughView = passthroughView_;

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        for( UIView* v in self.subviews ) {
                if( CGRectContainsPoint( v.frame, point ) ) {
                        // one of the sub view could accept the touch event
                        return [super hitTest:point withEvent:event];
                }
        }
        CGPoint newPoint = [self convertPoint:point toView:passthroughView_];
    return [passthroughView_ hitTest:newPoint withEvent:event];
}


- (void)dealloc {
        self.passthroughView = nil;
    [super dealloc];
}


@end

Измените класс scrollview на UICascadeScrollView и установите passthroughView на боковую панель.

Вот и все.

=============================================== ===================================

Образец трех каскадных слоев с табличным представлением в качестве боковой панели.

git@github.com: slavikshen / CascadeScrollView.git

https://github.com/slavikshen/CascadeScrollView

Это мой первый коммит на git hub. Пожалуйста скажите мне, если что-то не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...