Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS表格视图行的高度_Ios_Uitableview - Fatal编程技术网

IOS表格视图行的高度

IOS表格视图行的高度,ios,uitableview,Ios,Uitableview,我需要有两种类型的行。一个高度为44像素,另一个高度为90像素: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.section == 0) return 90.0; else return 44.0; } 问题是当我调用-(UITableViewCell*)table

我需要有两种类型的行。一个高度为44像素,另一个高度为90像素:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath   *)indexPath {
    if (indexPath.section == 0) 
        return 90.0;
    else
        return 44.0;
}
问题是当我调用-(UITableViewCell*)tableView:(UITableView*)tableView CellForRowatineXpath:(NSIndexPath*)indexPath时,因为我需要向具有90px高度的单元格添加一个scrollView,但它添加在单元格的中间,而不是顶部

 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时,问题是添加scrollView

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

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

它工作得很好,但对我来说听起来有些奇怪。发生了什么事?

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

所以

调试。。。NSLog。。。。输出事物的框架,以便您可以看到它们的位置,而不是您希望它们的位置。用于输出帧坐标:

NSLog(@"Frame is: ", NSStringFromCGRect(self.scrollView.frame));
或者定义一个好的快捷方式,因为我一直在使用它

#define LogCGRect(rect) NSLog(@"CGRect:%@", NSStringFromCGRect(rect));
那你就做吧

LogCGRect(self.scrollview.frame);

它只是将scrollview放入tableviewcell,不管它的高度是44还是90。

我使用以下代码解决了我的问题:

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];

我不知道这是否是错误的,但它是有效的…

只是为了澄清-为什么需要调整scrollView的边框?因为如果我不调整边框,它的高度为44 px,谢谢!
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];