※ ChatGPTを利用し、要約された質問です(原文:ナビゲーションバーのタイトルを2行で表示)
ナビゲーションバーのタイトルを2行で表示
このQ&Aのポイント
ナビゲーションバーのタイトルを2行で表示する方法を教えてください
ObjectiveCを使ってiPhoneアプリの開発をしています。ナビゲーションバーのタイトルを2行で表示させたいのですが、うまくできません。こちらのサイトを参考に進めましたが、エラーが発生しました。
コードの修正を行い、タイトルの表示はできましたが、サブタイトルの表示がうまくいきません。どのようにしたら2行でタイトルを表示できるでしょうか?
ObjctiveCを用いてiPhoneApp開発の勉強をしています。
タイトルの通り、ナビゲーションバーのタイトルを2行で表示させたいのですがうまくできないので助言をいただきたいです。
こちらのサイトを参考に進めました。
(参考)http://www.yoheim.net/blog.php?q=20121203
こちらのコードをコピペするといろいろとエラーが出てしまうのですが、
まず一行目に表示するラベルのaddSubviewするところで、
[titleView addSubview:taskMessageLabel];
のように記述されていますが、まだtaskMessageLabelは作成されていません。
また、二行目に表示するラベルのtaskMessageLabelはUILabel *taskMessageLabelとすると思うのですが、それもされていません。
いろいろと手直しをし、以下のようにしたのですが、二行目のサブタイトルしか表示されませんでした。
どのようにすれば、きちんと二行でタイトルを表示することができるのでしょうか?
回答お待ちしてます
// ナビゲーションバーのtitleに表示する独自Viewを作成します。
UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];
titleView.backgroundColor = [UIColor clearColor];
titleView.opaque = NO;
// ☆☆ポイントはここ!!
// 以下のように代入して、タイトルに独自Viewを表示します。
self.navigationItem.titleView = titleView;
// 1行目に表示するラベルを作成して、
// 上記で作成した独自Viewに追加します。
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 195, 20)];
titleLabel.font = [UIFont boldSystemFontOfSize:16.0f];
titleLabel.text = @"RSS";
titleLabel.textColor = [UIColor whiteColor];
titleLabel.textAlignment = NSTextAlignmentCenter;
titleLabel.backgroundColor = [UIColor clearColor];
[titleView addSubview:titleLabel];
// 2行目に表示するラベルを作成して、
// 上記で作成した独自Viewに追加します。
UILabel *taskMessageLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 195, 40)];
taskMessageLabel.font = [UIFont boldSystemFontOfSize:10.0f];
titleLabel.text = @"サブタイトル";
taskMessageLabel.textColor = [UIColor colorWithRed:104.0f/255.0f green:100.0f/255.0f blue:100.0f/255.0f alpha:1.0f];
taskMessageLabel.textAlignment = NSTextAlignmentCenter;
taskMessageLabel.backgroundColor = [UIColor clearColor];
taskMessageLabel.adjustsFontSizeToFitWidth = YES;
[titleView addSubview:taskMessageLabel];
お礼
回答ありがとうございます!おひさしぶりです^^ 単純な確認不足でしたね; 元のコードによく分からない記述があり、手直しして実行はできたので何がいけないのかと不思議に思ってしまいました。 無事に二行で表示する事ができました!