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