セルの内容全体をUILabelとUIButtonに分割します

cocoa-touch ios
セルの内容全体をUILabelとUIButtonに分割します

サブクラス化されたUITableViewCellがあります。 UILabelとUIButtonを動的に追加しています。

今、私はlayoutSubviewsをオーバーライドし、ボタンとラベルのX、Yを絶対に設定しています。 画面レイアウトと大画面の両方に対応できるようにするため、これを自動化したいと思います。 ラベルを「左にフロート」し、ボタンを「右にフロート」するように指示する方法はありますか?ラベルは、ボタンが必要としないすべてのスペースを使用するのが理想的です(ボタンの大部分は固定サイズになります)。

  0  0


ベストアンサー

0


cellLblがUILabelで、cellBtnがUIButtonであると仮定して、次のようなものを試すことができます。

- (void) layoutSubviews
{
  CGRect rctFrm;
  CGFloat flW;
  CGFloat flH;
  int iSpacing = 4; // This could be fixed for a percentage of cell width

  [super layoutSubviews];
  flW = self.contentView.bounds.size.width;
  flH = self.contentView.bounds.size.height;
  rctFrm = self.cellBtn.frame;
  flW -= rctFrm.size.width + iSpacing;
  rctFrm.origin.x = flW; // Right justify button
  rctFrm.origin.y = (flH - rctFrm.size.height) / 2; // Center button vertically
  [self.cellBtn setFrame:rctFrm];
  rctFrm = self.cellLbl.frame;
  rctFrm.origin.x = iSpacing;
  rctFrm.size.width = flW - (2 * iSpacing);
  // You can adjust UILabel vertical position and height if desired
  [self.cellLbl setFrame:rctFrm];
}

0


タイトルとURLをコピーしました