0

これを解決するのに役立つ客観的なcコードの重要な部分を誰かが要約できますか.

目的 - ユーザーがフォント サイズを変更した後、UITableView を自動サイズ変更します。したがって、ユーザーがフォントを増減した場合、(a) uiLabel の高さを変更してテキストが適切に含まれるようにし、(b) uiTableViewCell の高さも調整する必要があります。

仮定は次のとおりです。

  1. UITableView は、カスタム セル ビューの作成によって拡張されました。つまり、UITableView セルのコンテンツ ビューを形成する NIB に新しいビューを作成します。
  2. 各カスタム セルには、UILabels の 2 x 2 パターンを形成する 4 つの UILabel があります。つまり、上部の行に 2 つ、下部の行に 2 つです。
  3. ユーザーがフォントを増やしても、UILabels の水平方向の間隔は同じままですが、ラベルの高さは変わります

したがって、私が持っている課題/質問が含まれると思います(そして、誰かが投稿できるサンプルコードで答えられることを願っています)

  1. ここでの出発点は、InterfaceBuilder で既にレイアウトされたカスタム UITableViewCell でよろしいですか? (または、ソリューションは完全にプログラムで構築する必要がありますか)?
  2. ラベルの高さを計算する方法は? これは NSString メソッド「sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:」だけで、余白などを追加する必要がありますか?
  3. プログラムでラベルの高さを動的に増やす方法 - どの方法でこれを行うか、高さ自体を変更する方法
  4. 上部の UILabel が展開されて大きくなると、2 行目の UILabel が自動的に押し下げられるようにするにはどうすればよいですか? これはデフォルトで発生しますか、それとも確実に発生するために必要な特定のプロパティ/設定がありますか。
  5. 上記が発生した後、TableViewcell の高さを自動的に増やす方法。これを行う方法と、増加と再描画をプログラムで実行する方法。

これが理にかなっていることを願っています。
ありがとう

4

2 に答える 2

2

UILabel の高さをターゲット フォントと一致させるには、 のsizeWithFont関数を使用しますNSString

NSString *myText = @"Go Hokies";
UIFont *myFont = [UIFont boldSystemFontOfSize:15];
CGFloat lineHeight = [myText sizeWithFont:myFont].height;

発生する可能性のある問題は、テキストが定義した境界に水平方向に収まらない場合です。それに応じてフォントを縮小したい場合は、調整フラグをオンにして、このように最小値を設定します。

myUILabel.minimumFontSize = 10;
myUILabel.adjustsFontSizeToFitWidth = YES;
于 2011-03-07T06:31:17.110 に答える
2
  1. デフォルトのレイアウトとして XIB ファイルに基づいて、後で実行時に位置/サイズを調整できます。
  2. はい、その方法を使用して、必要な高さを計算します。ラベル間に余白を自分で追加する必要があります。
  3. ラベルのフレームを変更します。
  4. 1行目のラベル+余白からのx、y、高さに基づいて、2行目のラベルベースのx、yを計算する必要があります。
  5. 次のメソッドでフックし、新しい高さを返します。
    • (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
于 2011-03-07T06:18:38.493 に答える