iOS

2014-04-24, ios

UITableViewCellにUISwitchを載せる

元々、以下のようなコードでセルのcontentViewにsubviewを足して表示していたのですが、iOS7になってから、テーブルをスクロールして戻って来た際に表示が崩れてしまう問題が発生していました。

UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectMake(185, 6, 120, 31)];
[cell.contentView addSubview:sw];

以下のようにaccessoryViewを載せ変えてしまうと、同様の現象は出なくなるようです。しかもコードが簡単になります。

UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = sw;

UITextFieldも同様ですが、こちらはサイズやボーダーの指定をしないとうまく表示されないようです。

UITextField *tf = [[UITextField alloc]initWithFrame:CGRectMake(200, 5, 105, 33)];
[tf setBorderStyle:UITextBorderStyleRoundedRect];
cell.accessoryView = tf;

参考URL

この記事は役に立ちましたか?