适配横竖屏的两种方式

  1. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];   
    
     - (void)statusBarOrientationChange:(NSNotification *)notification
    {
    
      UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    
     if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) {
     //翻转为竖屏时
       [self constrainsForPortrait];
       [self drawKline];
       [self drawLine];
       [self drawMA5];
       [self.tableView reloadData];
       }
      if (orientation==UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight) {
         
         [self constrsinsForLandscape];
         [self drawKline];
         [self drawLine];
         [self drawMA5];
         [self.tableView reloadData];
         //考虑在里面重绘
       }
     }
    
  2.    - (NSInteger)needDrawKlineCount
     {
         CGFloat width = 0;
       UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
      if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) {
     
         width = SCREEN_WIDTH-50;
     
       }else{
         width = SCREEN_HEIGHT - 50;
     }
       _needDrawKlineCount = ceil(width/self.rowHeight);
       return _needDrawKlineCount;
     }
    

你可能感兴趣的:(适配横竖屏的两种方式)