2

UITableViewCell にラベル サブビューを追加したいと思います。フレームの原点とサイズを特定の値に簡単に設定できますが、現在/デフォルトのセル ラベルの高さと位置を使用するにはどうすればよいですか?

  UILabel *labPerHour;

  cell.textLabel.text       = @"Rate";

  labPerHour = [[UILabel alloc] init];

  //labPerHour.frame = CGRectMake( 280, cell.textLabel.frame.origin.y, 80, cell.textLabel.frame.size.height );
  labPerHour.frame = CGRectMake( 260, 7, 30, 30 );
  labPerHour.text  = @"$/hr";


  [cell addSubview:labPerHour];

コメントアウトされた行が機能することを望みます..または同様のもの。

誰か助けてくれませんか?このコードはもちろん、私の cellForRowAtIndexPath メソッドの一部です。

4

4 に答える 4

1

最初にセルラベルフレームを設定する必要があります。

cell.textLabel.frame = CGRectMake(0, 0, 40, 10);
于 2012-07-31T11:24:56.150 に答える
1

私はわかりません。うまくいくかもしれません。私は前にこれを試したことがない!!

CGRect theFrame = cell.textLabel.frame;
theFrame.origin.x = 280;
theFrame.size.width = 80;
labPerHour.frame = theFrame;
于 2012-07-31T09:52:02.120 に答える
1

uitable ビューのデフォルト ラベルのフレームを取得しようとしている場合は、これを試してください。

CGRect myframe;
myframe= cell.textlabel.frame;

必要に応じてこれを使用します

于 2012-07-31T09:54:22.693 に答える
1

スーパービューの座標系に対する座標を指定する必要があります。これらの座標は意味を成す必要があるため、ラベルはセルのフレームの外側ではなく内側に配置されます。

すべてのビューとウィンドウは独自のローカル座標系を定義するため、常にどの座標系が有効であるかを認識しておく必要があります。ビューに描画したり、そのジオメトリを変更したりするたびに、何らかの座標系を基準にして行います。描画の場合は、ビュー自体の座標系に対する座標を指定します。ジオメトリを変更する場合は、スーパービューの座標系に相対的な座標を指定します。UIWindow クラスと UIView クラスの両方に、ある座標系から別の座標系に変換するのに役立つメソッドが含まれています。

View Programming Guide for iOSのセクション「View Geometry and Coordinate Systems」。

于 2012-07-31T09:55:15.597 に答える