【问题标题】:UILabel in UITableView setting sizeUITableView 中的 UILabel 设置大小
【发布时间】:2012-07-31 09:37:51
【问题描述】:

我想将标签子视图添加到 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 方法的一部分。

【问题讨论】:

  • 您是否使用 ios5 故事板功能创建了原型单元?
  • 不,我仍在使用 Xcode 4。谢谢。

标签: iphone objective-c ios uitableview uilabel


【解决方案1】:

我不确定。也许它会起作用。这个我没试过!!

CGRect theFrame = cell.textLabel.frame;
theFrame.origin.x = 280;
theFrame.size.width = 80;
labPerHour.frame = theFrame;

【讨论】:

  • 好吧,这会并且(可能)将 cell.textLabel 的大小更改为您在上面引用的特定大小。我所追求的是默认的 cell.textLabel 大小 - 无论 iOS 分配给什么他们最初。
  • 你得到的输出是什么?它类似于您在代码中尝试过的内容! labPerHour.frame = CGRectMake(280, cell.textLabel.frame.origin.y, 80, cell.textLabel.frame.size.height);不是吗??
【解决方案2】:

如果你想获取 uitable view 默认标签的框架,那么你可以试试这个

CGRect myframe;
myframe= cell.textlabel.frame;

现在根据需要使用它

【讨论】:

    【解决方案3】:

    您需要提供相对于父视图坐标系的坐标。这些坐标需要有意义,因此您的标签仍位于单元格的框架内,而不是外部。

    因为每个视图和窗口都定义了自己的局部坐标系, 您需要知道哪个坐标系在任何时候都有效 给定的时间。每次绘制视图或更改其几何图形时, 你这样做是相对于某个坐标系的。在绘画的情况下, 您指定相对于视图自己的坐标系的坐标。 在几何形状发生变化的情况下,您指定相对于 superview的坐标系。 UIWindow 和 UIView 类 两者都包括帮助您从一个坐标系转换为 另一个。

    View Programming Guide for iOS 的“查看几何和坐标系”部分。

    【讨论】:

      【解决方案4】:

      您首先需要设置您的单元格标签框架。

      cell.textLabel.frame = CGRectMake(0, 0, 40, 10);
      

      【讨论】:

      • 但它肯定已经有框架了吗?我的单元格和文本标签已经有一个我不想更改的默认大小 - 我只想使用该默认大小,因此我的其他子视图标签与单元格中的默认标签大小相同。如果我有我的 Mac,我会打印出 cell.textLabel.frame 的内容,但必须等到我能回到我的 Mac 上..
      • 它已经有框架......我试图根据您的要求获取框架,但滚动表格后我得到了单元格文本标签框架大小......意味着在开始时,当表格加载时。 .i 得到单元格文本标签高度 = 0,在第一次滚动后,我得到了实际的文本标签大小......;
      • 所以你必须先滚动表格来获取你的 textLabel 大小,或者你必须首先提供 textLabel 框架大小..
      • 我明白你在说什么。其他答案表明这样做的正常方法是首先指定实际大小。老实说,我会认为会有一种更简单的方法来确定/预测 iOS 将使用什么。但也许有不是。
      猜你喜欢
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      相关资源
      最近更新 更多