title: set cornerRadius and setbackgroundimage to UIButton
body: <p>I am trying to set cornerRadius of UIButton but I dont know how to do it.</p>
  
  <p>If I do like this:</p>
  
  <pre><code>button.layer.cornerRadius = 5;
  </code></pre>
  
  <p>works well, if I do like this :</p>
  
  <pre><code>button.layer.cornerRadius = 5;
  [button setBackgroundColor:[UIColor colorWithPatternImage:radialGradient]];
  </code></pre>
  
  <p>the corners are not rounded.</p>
  
  <p>I know I could solve this whit</p>
  
  <pre><code> [button.layer setMasksToBounds:YES];
  </code></pre>
  
  <p>but I specifically looking for different solution, because I add some arrows to the button and if I set mask to bounds the arrow are masked.   </p>
  
  <p>EDIT : </p>
  
  <p>radialGradient is made whit func</p>
  
  <pre><code>+ (UIImage *)getRadialGradientImage:(CGSize)size centre:(CGPoint)centre radius:(float)radius startColor:(UIColor *)startColor endColor:(UIColor *)endColor{
  
  // Initialise
  UIGraphicsBeginImageContextWithOptions(size, YES, 1);
  
  // Create the gradient's colours
  size_t num_locations = 2;
  CGFloat locations[2] = { 0.0, 1.0 };
  
  const CGFloat *component_first = CGColorGetComponents([startColor CGColor]);
  
  CGFloat red1 = component_first[0];
  CGFloat green1 = component_first[1];
  CGFloat blue1 = component_first[2];
  
  const CGFloat *component_second = CGColorGetComponents([endColor CGColor]);
  CGFloat red2 = component_second[0];
  CGFloat green2 = component_second[1];
  CGFloat blue2 = component_second[2];
  
  const CGFloat components[8] = { red1,green1,blue1,1,red2,green2,blue2,1}; // End color
  
  CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();
  CGGradientRef myGradient = CGGradientCreateWithColorComponents (myColorspace, components, locations, num_locations);
  
  // Normalise the 0-1 ranged inputs to the width of the image
  CGPoint myCentrePoint = CGPointMake(centre.x * size.width, centre.y * size.height);
  float myRadius = MIN(size.width, size.height) * radius;
  
  // Draw it!
  CGContextDrawRadialGradient (UIGraphicsGetCurrentContext(), myGradient, myCentrePoint,
                               0, myCentrePoint, myRadius,
                               kCGGradientDrawsAfterEndLocation);
  
  // Grab it as an autoreleased image
  UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  
  // Clean up
  CGColorSpaceRelease(myColorspace); // Necessary?
  CGGradientRelease(myGradient); // Necessary?
  UIGraphicsEndImageContext(); // Clean up
  return image;
  }
  </code></pre>