【问题标题】:IOS TableView height of rowsIOS TableView 行高
【发布时间】:2012-02-29 07:29:34
【问题描述】:

我需要有 2 种行。一个高度为 44 像素,另一个高度为 90 像素:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath   *)indexPath {
    if (indexPath.section == 0) 
        return 90.0;
    else
        return 44.0;
}

问题是当我调用 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 因为我需要在 90px 的单元格中添加一个高度为 90px 但它被添加到单元格的中间而不是顶部。

 if (indexPath.section == 0) {
        cell = [tableView dequeueReusableCellWithIdentifier:ScrolledCellIdentifier];
        if (cell == nil)
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ScrolledCellIdentifier];
        //cell.textLabel.text = @"hi";

        [cell addSubview:self.scrollView];
    }

尝试设置单元格的 textLabel 工作,问题是添加滚动视图。

如果我将这一行添加到代码中:

self.scrollView.frame = CGRectMake(0,-45, 320, 90);

效果很好,但对我来说听起来有些奇怪。发生了什么?

【问题讨论】:

  • 澄清一下——为什么需要调整scrollView的frame?
  • 因为如果我不调整框架高度为 44 像素,谢谢!

标签: ios uitableview


【解决方案1】:

在添加之前将滚动视图的框架设置为单元格的边界。

所以

self.scrollView.frame = cell.bounds;
[cell addSubview:self.scrollView];

Debug... NSLog.... 输出事物的帧,以便您可以看到它们的定位位置,而不是您希望它们定位的位置。使用它来输出帧坐标:

NSLog(@"Frame is: ", NSStringFromCGRect(self.scrollView.frame));

或者定义一个不错的快捷方式,因为我一直使用它

#define LogCGRect(rect) NSLog(@"CGRect:%@", NSStringFromCGRect(rect));

那么你就可以了

LogCGRect(self.scrollview.frame);

【讨论】:

    【解决方案2】:

    它只是将滚动视图放入 tableviewcell,无论它的高度是 44 还是 90。

    【讨论】:

      【解决方案3】:

      我用这段代码解决了我的问题:

      cell = [tableView dequeueReusableCellWithIdentifier:ScrolledCellIdentifier];
      if (cell == nil)
          cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ScrolledCellIdentifier];
      cell.frame = CGRectMake(0, 0, 320, 90);
      self.scrollView.frame = CGRectMake(0,0, 320, 90);
      [cell addSubview:self.scrollView];
      

      我不知道是不是错了,但它确实有效......

      【讨论】:

        猜你喜欢
        • 2011-12-07
        • 2017-04-26
        • 2015-07-16
        • 1970-01-01
        • 2016-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多