Uiscrollview jak aplikacja Twitter dla iPada
Szukam tutoriala lub pomysłów na wykonanie niestandardowego kontrolera, który wygląda jak ten w aplikacji Twitter dla iPada, mam na myśli ułożone strony z głównym menu po lewej stronie. Z góry dziękuję za wszelką pomoc!!
2 answers
Stworzyliśmy projekt mock i dodaliśmy go w GitHubie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-09 15:24:00
Mam na to rozwiązanie.
Umieść widok tabeli jako menu bocznego po lewej stronie. Umieść widok przewijania na górze. Dodaj zawartość do widoku przewijania.
Widok przewijania obejmie widok tabeli. Ustaw szerokość zawartości rozmiar widoku przewijania na sumę szerokości zawartości i szerokości paska bocznego. Pozycja zawartości jest na (szerokość paska bocznego, 0). Możesz przeciągnąć go, aby zasłonić lub odsłonić pasek boczny.
Problem polega na tym, że widok tabeli nie może odbierać żadnego zdarzenia dotykowego na to jest objęte widoku przewijania.
Więc implementuję podklasę.
@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
Zmień klasę scrollview na UICascadeScrollView i ustaw passthroughView na pasek boczny.
To wszystko.==================================================================================
Próbka trzech kaskadowych warstw z widokiem tabeli jako sidebar.
[email protected]:slavikshen/CascadeScrollView.git
Https://github.com/slavikshen/CascadeScrollView
To mój pierwszy commit do git huba. Proszę mi powiedzieć, jeśli coś jest nie tak.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-06 05:33:03