1

ボタンを titleView として使用します。しかし、ボタンの高さを取得したいときは、 or を使用しself.button.frame.size.heightないself.navigationItem.titleView.frame.size.heightと、常に 0 が返されます。他の値 (x、y、幅など) が妥当と思われる場合があります。

なんで?

In loadView
{
    self.switchButton =  [UIButton buttonWithType:UIButtonTypeCustom];
    [self.switchButton setTitle:@"TapMe" forState:UIControlStateNormal];
    self.navigationItem.titleView = self.switchButton;
    [self.switchButton addTarget:self action:@selector(doSomeThing:) forControlEvents:UIControlEventTouchUpInside];
 }

-(void)doSomeThing:(id)sender
{
    NSLog(@"height%f", self.switchButton.frame.size.height);
}
4

2 に答える 2

0
self.navigationItems.navagationBar

正しくないようです。

どうですか

CGRectGetHeight(self.navigationItem.titleView.frame)
于 2012-12-04T08:36:16.457 に答える
0

使用できます

最初に A ビューを TitleView に割り当てます

UILabel *titiLbl = [[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 44)]autorelease];
titiLbl.text = @"Title Name";
self.navigationItem.titleView = titiLbl;

次に、titleViewの高さを見つける

CGRect navigationframe = self.navigationItem.titleView.frame;
NSLog(@"navigationframe Height=%f",navigationframe.size.height);

また、NavigationItem の titleView にビューが割り当てられていない場合は、0.000 が返されることに注意してください。

于 2012-12-04T08:36:24.317 に答える