24/7 twenty-four seven

iOS/OS X application programing topics.

UIButton の隠し API

UIButton も buttonWithType: メソッドの引数に 100 以上の値を直接指定すると、非公開のボタンタイプを使用することができます。

100 〜 102: ナビゲーションバーのボタン (UINavigationButton)


100, 101, 102 を指定すると、ナビゲーションバーで使われているボタンスタイルになります。
Back ボタンの形を自分で作るのは大変なので、素材として活用すると便利かもしれません。

UIButton *button;

button = [UIButton buttonWithType:100];
button.frame = CGRectMake(10.0f, 10.0f, button.frame.size.width, button.frame.size.height);
[button setTitle:[NSString stringWithUTF8String:"100 番のボタン"] forState:UIControlStateNormal];
[self.view addSubview:button];

button = [UIButton buttonWithType:101];
button.frame = CGRectMake(10.0f, 50.0f, button.frame.size.width, button.frame.size.height);
[button setTitle:[NSString stringWithUTF8String:"101 番のボタン"] forState:UIControlStateNormal];
[self.view addSubview:button];

button = [UIButton buttonWithType:102];
button.frame = CGRectMake(10.0f, 90.0f, button.frame.size.width, button.frame.size.height);
[button setTitle:[NSString stringWithUTF8String:"102 番のボタン"] forState:UIControlStateNormal];
[self.view addSubview:button];

110: UITexturedButton


ちょっと変わったスタイルのボタンです。

UIButton *button;
    
button = [UIButton buttonWithType:110];
button.frame = CGRectMake(10.0f, 130.0f, 140.0f, 40.0f);
[button setTitle:[NSString stringWithUTF8String:"110 番のボタン"] forState:UIControlStateNormal];
[self.view addSubview:button];
    

111: UIGlassButton


ぴかぴかしたボタンになります。
tintColor で色を変えられるので、GUI の雰囲気に合わせて使えそうです。

UIButton *button;
    
button = [UIButton buttonWithType:111];
button.frame = CGRectMake(10.0f, 180.0f, 180.0f, 40.0f);
[button setTitle:[NSString stringWithUTF8String:"111 番のボタン"] forState:UIControlStateNormal];
[self.view addSubview:button];
    
button = [UIButton buttonWithType:111];
button.frame = CGRectMake(10.0f, 230.0f, 180.0f, 40.0f);
[button setTitle:[NSString stringWithUTF8String:"111 番のボタン"] forState:UIControlStateNormal];
[button setTintColor:[UIColor redColor]];
[self.view addSubview:button];
    
button = [UIButton buttonWithType:111];
button.frame = CGRectMake(10.0f, 280.0f, 180.0f, 40.0f);
[button setTitle:[NSString stringWithUTF8String:"111 番のボタン"] forState:UIControlStateNormal];
[button setTintColor:[UIColor blueColor]];
[self.view addSubview:button];


やはり Undocumented のメソッドを呼び出すわけではないので、審査も普通に通りそうです。知りませんけど。