Revision: 27144
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 25, 2010 03:00 by devb0yax
Initial Code
#define SCROLLVIEW_CONTENT_HEIGHT_PORTRAIT 800 #define SCROLLVIEW_CONTENT_WIDTH_PORTRAIT 320 #define SCROLLVIEW_CONTENT_HEIGHT_LANDSCAPE 670 #define SCROLLVIEW_CONTENT_WIDTH_LANDSCAPE 480 ........ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name: UIKeyboardDidShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name: UIKeyboardDidHideNotification object:nil]; m_scrollView.contentSize = CGSizeMake(SCROLLVIEW_CONTENT_WIDTH_PORTRAIT, SCROLLVIEW_CONTENT_HEIGHT_PORTRAIT); displayKeyboard = NO; } - (void)viewWillDisappear:(BOOL)animated { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } - (void)keyboardDidShow: (NSNotification *)notif { if (displayKeyboard) { return; } if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) { m_scrollView.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH_LANDSCAPE, 140); } else { m_scrollView.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH_PORTRAIT, 240); } CGRect textFieldRect = [m_activeField frame]; textFieldRect.origin.y += 10; [m_scrollView scrollRectToVisible:textFieldRect animated:YES]; displayKeyboard = YES; } - (void) keyboardDidHide: (NSNotification *)notif { if (!displayKeyboard) { return; } if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) { m_scrollView.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH_LANDSCAPE, 300); m_scrollView.contentSize = CGSizeMake(SCROLLVIEW_CONTENT_WIDTH_LANDSCAPE, SCROLLVIEW_CONTENT_HEIGHT_LANDSCAPE); } else { m_scrollView.frame = CGRectMake(0, 0, SCROLLVIEW_CONTENT_WIDTH_PORTRAIT, 460); m_scrollView.contentSize = CGSizeMake(SCROLLVIEW_CONTENT_WIDTH_PORTRAIT, SCROLLVIEW_CONTENT_HEIGHT_PORTRAIT); } displayKeyboard = NO; }
Initial URL
Initial Description
when changing orientation the scrollview has extra content size
Initial Title
scrolling view problem when device is changing orientation
Initial Tags
Initial Language
iPhone