ただし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"); }