title: Adding a circle mask layer on an UIImageView
body: <p>I'm building a Photo filter app (like Instagram, Camera+ and many more..), may main screen is a <code>UIImageView</code> that presenting the image to the user, and a bottom bar with some filters and other options.<br>
  One of the option is <strong>blur</strong>, where the user can use his fingers to pinch or move a circle that represent the non-blur part (radius and position) - all the pixels outside of this circle will be blurred.    </p>
  
  <p>When the user touch the screen I want to add a semi transparent layer above my image that represent the blurred part, with a fully transparent circle that represent the non-blur part.  </p>
  
  <p>So my question is, how do I add this layer? I suppose I need to use some view above my image view, and to use some mask to get my circle shape? I would really appreciate a good tip here.  </p>
  
  <p><strong>One More Thing</strong><br>
  I need the circle will not be cut straight, but have a kind of gradient fade. something like  Instagram:<br>
  <img src="https://i.stack.imgur.com/A8Z6x.jpg" alt="enter image description here">  </p>
  
  <p>And what's <strong>very important</strong> is to get this effect with good performance, I'd succeed getting this effect with <code>drawRect:</code> but the performance was very bad on old devices (iphone 4, iPod)  </p>