2

navigationItem TitleView を右端に揃える必要があります。(通常、navigationItem の rightBarButtonItem が表示される場所)

これはどのように行うことができますか?

私はこれを試しましたが、うまくいきませんでしたが、まだ TitleView を中央に配置しています。

CGRect titleViewPos = CGRectMake(300, 0, 200, 10);
self.navigationItem.titleView.frame = titleViewPos;
4

6 に答える 6

4
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
lbl.textAlignment = UITextAlignmentRight;
lbl.backgroundColor = [UIColor clearColor];
lbl.text = @"TITLEVIEW";
self.navigationItem.titleView = lbl;

次のような出力が得られます

ここに画像の説明を入力

于 2013-04-30T09:52:45.597 に答える
0

UIElement (UIView、UILabel) をナビゲーション アイテムに渡す必要があります。その後、位置を設定し、ナビゲーション タイトルまたは左ボタンまたは右ボタンを使用してその他のカスタマイズを行うことができます。これがあなたを助けますように。

于 2013-04-30T09:58:57.813 に答える
0

ただのアイデア:

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 btn.frame = CGRectMake(300, 0, 200, 10);
 [btn setTitle:@"titleView" forState:UIControlStateNormal];
 self.navigationItem.titleView = btn;
于 2013-04-30T09:53:58.397 に答える
0

titleview フレームは自動的に調整されます。この結果を取得したい場合は、次を試してください。

UILabel *titleLabel = [[UILabel alloc] initWithFrame:self.navigationController.navigationBar.frame];
[titleLabel setTextAlignment:UITextAlignmentRight];
[titleLabel setText:@"Your title"];
[titleLabel setBackgroundColor:[UIColor clearColor]];
[titleLabel setTextColor:[UIColor whiteColor]];
self.navigationItem.titleView = titleLabel;

注:ビューコントローラーのself.titleを設定しないでください。そうしないと、titleViewが上書きされます

別の解決策は、titleLabel を UIBarButtonItem (customView) に配置し、self.navigationItem.rightBarButtonItem のように設定することです。この方法では、テキストの配置とラベルのフレームを適切なテキスト サイズにする必要はありません。

于 2013-04-30T10:15:28.720 に答える