3

Music アプリのタイトルのように機能する UINavigationBar でタイトルを作成しようとしています。つまり、3 行あり、行が長すぎるとスクロールします。次のコードには、いくつかの問題があります。1) 行が長すぎると、次の行に分割されます。したがって、2 行目が長すぎると、3 行目にオーバーフローし、3 行目はまったく表示されません。また、行の高さを変更する方法はなく、これは UINavigationBar 内に収まりません。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 480, 44)];
label.backgroundColor = [UIColor clearColor];
label.numberOfLines = 3;
label.font = [UIFont boldSystemFontOfSize: 12.0f];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentLeft;
label.textColor = [UIColor whiteColor];
NSString *songData;
songData = [[songList objectAtIndex:currentIndex] artistName];
songData = [songData stringByAppendingString:@"\n"];
songData = [songData stringByAppendingString: [[songList objectAtIndex:currentIndex] songName]];
songData = [songData stringByAppendingString:@"\n"];
songData = [songData stringByAppendingString: [[songList objectAtIndex:currentIndex] albumName]];
label.text = songData;
self.navigationItem.titleView = label;
4

3 に答える 3

4

MarqueeLabelを試しましたか? それは非常にうれしいです :)

MarqueeLabel は UILabel サブクラスであり、ラベルのテキストが使用可能な幅を超えたときにスクロール マーキー効果を追加します。ラベルのスクロール方向と速度/レートも指定できます。すべての標準 UILabel プロパティ (意味がある場合) は MarqueeLabel で使用でき、UILabel と同じように動作します。

于 2012-09-03T07:07:22.843 に答える
0

時間の助けを借りて、同じティッカー ビューを作成できます。以下のソースコードを参照してください。テキストをある方向から別の方向に移動します。

https://github.com/MugunthKumar/MKTickerViewDemo

https://github.com/caydenliew/CLTickerView

于 2012-04-04T17:50:50.393 に答える
0

私は似たようなことをしようとしています.Mangeshの答えは問題の半分(スクロール)に対処していますが、残りの半分を助けようとします. 複数のラベルに合わせて、新しいビューを作成し、複数のラベルで埋めて、線が互いに重ならないようにすることができます。titleView に何かを追加するだけの場合、ナビゲーション バーのカスタマイズが必要以上に複雑になる投稿やチュートリアルがたくさんあります。これは私がしたことです:

  1. xib を使用して新しいビュー コントローラーを作成します。
  2. IB で指定されたデフォルト ビューを削除し、別のビューに置き換えます。サイズ インスペクターでサイズを設定します。titleView が機能するのは 128 x 33 です。ビューの背景をクリア カラーに設定することをお勧めします。
  3. そこにいくつかのラベルをドラッグし (iOS Music アプリのように見せたい場合は 3 つ)、それに応じてサイズや色を変更します。
  4. 新しいビューをファイル所有者のビューとして設定します。
  5. 新しいラベルに必要な IBOutlets を作成し、それらを IB のファイル所有者に添付します。
  6. ナビゲーション コントローラーを操作するビュー コントローラーの viewDidLoad で、カスタム ビュー コントローラーを初期化し、そのビューを navigationItem の titleView として設定します。

    TitleViewController *customTitleVC = [[TitleViewController alloc] initWithNibName:nil bundle:nil]; self.navigationItem.titleView = customTitleVC.view;

Mangesh のリンクを使用する場合は、スクロール ビューを組み込み、それを彼がリンクしたライブラリと共にカスタム ビュー コントローラーに含める必要があります。私が提供した方法は、iOS 4.3 - 5.1 で動作することが確認されています。それが誰かを助けることを願っています。

于 2012-05-23T18:34:00.967 に答える