ただし2行以上の場合[Btn sizeToFit];をしても、横長になってしまうため
ボタンの大きさは自分で調整する必要がある。
※追記 若干修正とスクリーンショットを追加してみました。
((UILabel*)Btn).lineBreakMode=UILineBreakModeWordWrap;
↓↓↓ついでにボタンのプログラム生成手順も。↓↓↓↓
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *Btn = [UIButton buttonWithType:
UIButtonTypeRoundedRect];
[Btn setFrame:CGRectMake(0,0, 0.0, 0.0)];
NSString*_name = @"長い長い長い長い長い長い長い長い";
//10字1行として行数をカウント
int column = ((int)([_name length]/10))+1;
//改行コードを10字置きに入れる
NSMutableString*str= [NSMutableString stringWithCapacity:1];
int now = 0;
int last = [_name length]-1;
for(int cnt = 0; cnt < column; cnt++){
if(cnt != column-1){
[str appendFormat:@"%@\n",
[_name substringWithRange:NSMakeRange(now,10)]];
now += 10;
}else{//最後
[str appendString:[_name substringWithRange:
NSMakeRange(now,last-now+1)]];
}
}
//複数行
((UILabel*)Btn).lineBreakMode = UILineBreakModeWordWrap;
//タイトル
[Btn setTitle:str forState:UIControlStateNormal];
//ボタンのサイズ
[Btn setFrame:CGRectMake(0,0,150,(14*column)+30)];
//フォント
[Btn.titleLabel setFont:[UIFont systemFontOfSize:14]];
//文字を中央揃えに
[Btn.titleLabel setTextAlignment:UITextAlignmentCenter];
//文字色
[Btn setTitleColor:[UIColor blackColor]
forState:UIControlStateNormal];
//タグ
[Btn setTag:1];
//アクション登録
[Btn addTarget:self action:@selector(clickButton:)
forControlEvents:UIControlEventTouchUpInside];
//ボタンをビューに追加
[self.view addSubview:Btn];
Btn.center=self.view.center;
}
-(void)clickButton:(UIButton*)sender{
NSLog(@"Click");
}
