title: How to init UIButton's type after using alloc?
body: <p>I know we can use the <code>buttonWithType</code> method to get an UIButton with specific type.</p>
  
  <pre><code>UIButton * button = [UIButton buttonWithType:(UIButtonTypeRoundedRect)];
  </code></pre>
  
  <p>Today, I casually use UIButton's alloc/init method to create an UIButton:</p>
  
  <pre><code>UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(20, 300, 100, 50)];
  </code></pre>
  
  <p>then I found there is no way to change the button's type.Because the UIButton's buttonType property is readonly.</p>
  
  <p>In UIKit.framework, UIButton.h :</p>
  
  <pre><code>@property(nonatomic,readonly) UIButtonType buttonType;
  </code></pre>
  
  <p>My question is:if I use alloc/init to create a UIButton, can I change the UIButton's type? If not, since there is <strong>NOT</strong> any init method like <code>-initWithType</code> in UIButton, we can only use the <code>+buttonWithType</code> method to get an autorelease UIButton. It sounds a little strange, why not provide an initWithType method?</p>