Thursday, March 26, 2015

Adding Custom Gradient to Button:


-(CAGradientLayer *)getCAGradientLayerWithFrame : (CGRect)bounds {
  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
 
  bounds.origin.y    = bounds.size.height - 6;
  bounds.size.height = 6;

  gradientLayer.frame = bounds;
  gradientLayer.colors = [NSArray arrayWithObjects:
                          (id)[UIColor orangeColor].CGColor,
                          (id)[UIColor orangeColor].CGColor,
                          nil];
 
  gradientLayer.locations = [NSArray arrayWithObjects:
                             [NSNumber numberWithFloat:0.0f],
                             [NSNumber numberWithFloat:1.0f],
                             nil];

  return gradientLayer;
}




- (IBAction)btnAction:(id)sender {
 
  UIButton *btn = (UIButton *)sender;
  NSArray *subLayersArr = [btn.layer sublayers];
 
  NSLog(@"subLayersArr : %@", subLayersArr);
 
 
  CAGradientLayer *subLayer = nil;
  if ([subLayersArr count]) {
    subLayer = [subLayersArr objectAtIndex:0];
  }
 
  NSLog(@"subLayer : %@", subLayer);
 
 
  btn.selected = !btn.selected;

  if (btn.selected) {
    subLayer.hidden = NO;
  } else {
    subLayer.hidden = YES;
  }
 
}


Usage:
=====
CAGradientLayer *layer = [self getCAGradientLayerWithFrame:self.aButton.layer.bounds];
self.aButton.backgroundColor = [UIColor yellowColor];
[self.aButton.layer addSublayer:layer];





Tuesday, March 24, 2015

Hide StatusBar in iOS


UIStatusBarHidden

UIViewControllerBasedStatusBarAppearance

Custom SplitViewController:



- (void)viewDidLayoutSubviews
{
  [super viewDidLayoutSubviews];
 
  //NSLog(@"CustomSplitViewController is called"); 260, 764
 
  const CGFloat kMasterViewWidth = 260.0;
 
  float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
 
  NSLog(@"systemVersion : %0.2f", systemVersion);
 
 
  if(systemVersion < 8.0f){
  
      UIViewController *masterViewController = [self.viewControllers objectAtIndex:0];
      UIViewController *detailViewController = [self.viewControllers objectAtIndex:1];
    
      if (detailViewController.view.frame.origin.x > 0.0) {
        // Adjust the width of the master view
        CGRect masterViewFrame = masterViewController.view.frame;
        CGFloat deltaX = masterViewFrame.size.width - kMasterViewWidth;
        masterViewFrame.size.width -= deltaX;
        masterViewController.view.frame = masterViewFrame;
      
        // Adjust the width of the detail view
        CGRect detailViewFrame = detailViewController.view.frame;
        detailViewFrame.origin.x -= deltaX;
        detailViewFrame.size.width += deltaX;
        detailViewController.view.frame = detailViewFrame;
      
        [masterViewController.view setNeedsLayout];
        [detailViewController.view setNeedsLayout];
      }
  
  } else {
  
    self.maximumPrimaryColumnWidth = kMasterViewWidth;
  
  }
 
 
}