Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Iphone 可变高度视图和标签_Iphone_Objective C_Uiview - Fatal编程技术网

Iphone 可变高度视图和标签

Iphone 可变高度视图和标签,iphone,objective-c,uiview,Iphone,Objective C,Uiview,好的,现在我不在表格单元格中。(我已经看到很多关于单元格高度的线索。) 我有一个详细视图,在视图的顶部有一个标题和描述,下面是一个表视图。如果描述的长度不同,如何使tableView进行相应的调整,使其始终从它的正下方开始 我看到苹果在应用商店应用程序中这样做。如果你看一个应用程序描述(就好像你要买它一样),他们有一个应用程序描述,无论它在哪里结束,都会有一个屏幕截图滚动窗格。他们是如何在文字描述上改变高度的 它们是以编程方式完成的,还是我可以使用IB中的布局控件来完成相同的任务?您需要以编程方

好的,现在我不在表格单元格中。(我已经看到很多关于单元格高度的线索。)

我有一个详细视图,在视图的顶部有一个标题和描述,下面是一个表视图。如果描述的长度不同,如何使tableView进行相应的调整,使其始终从它的正下方开始

我看到苹果在应用商店应用程序中这样做。如果你看一个应用程序描述(就好像你要买它一样),他们有一个应用程序描述,无论它在哪里结束,都会有一个屏幕截图滚动窗格。他们是如何在文字描述上改变高度的


它们是以编程方式完成的,还是我可以使用IB中的布局控件来完成相同的任务?

您需要以编程方式在视图中添加表视图,并根据详图视图的大小设置其框架

1> 获取detailView的当前帧 2> 添加它的高度,然后将tableview添加到视图中

UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(initX , initY + DetailViewFrame.size.height, TableWidth, TableHeight) style:UITableViewStylePlain];
[view addSubView:table];

IB中的布局控件可更改视图调整其父视图大小时视图的大小。在这种情况下,(我假设)标签和表视图是同级视图,因此您需要通过编程来实现这一点。调整标签的大小以适合,找到标签的底部(原点的y位置加上标签的高度),并使用该位置来指导放置表格视图的位置。您可能会在-viewDidLoad或-VIEWWILLEASE:中执行此操作,这取决于您何时有足够的信息进行计算。

我认为您需要使用“sizeWithFont”在运行时计算单元格高度,请参见以下内容:

- (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath
{
  CGSize labelSize = CGSizeMake(200.0, 20.0);
  if ([string length] > 0)
    labelSize = [string sizeWithFont: [UIFont boldSystemFontOfSize: 17.0] constrainedToSize: CGSizeMake(labelSize.width, 1000) lineBreakMode: UILineBreakModeWordWrap];
  return 24.0 + labelSize.height;
}
在“CellForRowatineXpath”中


希望这对您有所帮助……

这很有意义。可惜你在IB里做不到这一点。我想我会想办法把整个东西做成一个大的滚动窗格。谢谢你的帮助。谢谢。。。只是纠正我自己。。。无需在X坐标中添加宽度。。。我正在编辑它…谢谢你在这方面的帮助,但在这种情况下,我不在表格单元格中。它根据上方文本标签的高度来确定表视图本身的位置。不过还是可以参考的。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.autoresizingMask = UIViewAutoresizingFlexibleHeight;       
    }

cell.textLabel.text = @"Your string with variable length";              
        [cell.textLabel setFont:[UIFont boldSystemFontOfSize:12]];
        //[cell.textLabel setAdjustsFontSizeToFitWidth:YES]; 
        [cell.textLabel setBaselineAdjustment:UIBaselineAdjustmentAlignBaselines]; 
        [cell.textLabel setLineBreakMode:UILineBreakModeWordWrap];
        [cell.textLabel setNumberOfLines:0];
return cell;
}