UITextFieldやUITextView等での枠線、radiusについて。

f:id:dangiruba:20120824185305p:plain

環境:

OS:Mountain Lion

Xcode:4.4

ストーリーボード使用

Date:2012/8/24

 

*な・ぜ・か

ストーリーボード上じゃUITextView等で、枠線をつけたり角を丸めたりできないみたいです。

 

コード上ならできるんですけど、ぐぐって出てくる情報じゃなぜかエラーになってできなかったので書いておきます。

 

UIViewControllerに対応するクラスを作っていて、Classを接続している前提で進めます。

 

*outletを接続

いつもの方法で、コードと部品を対応付けます。

EditorをAssistant Editor(真ん中のやつ)にして、部品からコントロールを押しながらViewControllerのヘッダー部分にドロップ

適当に名前をつけますが、ここではtextFieldという名前だと仮定します。

 

*ヘッダー追加

ViewControllerのヘッダーに、

>|?|

#import <QuartzCore/QuartzCore.h>

||<

と、import文を追加してください。

これが無いと

 Property 'borderWidth' cannot be found in forward class object 'CALayer'

 Property 'cornerRadius' cannot be found in forward class object 'CALayer'

だったりっていうエラーが出ちゃいます。怖い怖い 

 

*コードを書く

ViewControllerの実行ファイル(*.m)の、viewDidLoad等に、以下の2行を追加。

>||

    textField.layer.borderWidth = 1.0; //枠線の太さ

    textField.layer.cornerRadius = 10.0; //角丸の半径

||<

数字は適当に変えてください。

 

完成版

ViewController.h

>||

#import <UIKit/UIKit.h>

#import <QuartzCore/QuartzCore.h>

 

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UITextView *textField;

 

@end

||<

 

ViewCOntroller.m

>||

- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view.

    

    textField.layer.borderWidth = 1.0;

    textField.layer.cornerRadius = 10.0;

    

}

||<

 

f:id:dangiruba:20120824185305p:plain

 

こんな感じになってくれる。