如何在垂直 UIScrollView 中显示文本和其他对象?
Posted
技术标签:
【中文标题】如何在垂直 UIScrollView 中显示文本和其他对象?【英文标题】:How do I display text and other objects in vertical UIScrollView? 【发布时间】:2015-12-30 19:04:10 【问题描述】:我如何在垂直滚动中只显示不同的对象?模式应该是:标题(标签)、副标题、描述(UITextView?),可能是文本中的一些图像。
我正在尝试做一个类似于iChemistry app的设计
问题在于 TextView 支持滚动,因为它已经是 UIScrollView 的子项。其次是我在垂直方面遇到了一些问题,显然 UIScrollView 只允许水平滚动到我的 UITextView。
如何仅在 UIScrollView 中显示不同的对象和多行文本? (就像 iChemistry 应用程序一样)。我还在 .app 中检查了它的文件,它从 .sqlite 数据库中获取了原始内容,所以它没有使用 html。
编辑:关于使用 TableView 执行此操作的建议?
【问题讨论】:
看起来很适合 UITableView。 为什么你的描述是UITextView
而不是UILabel
?
我考虑了 UITableView 选项。现在显示真正不同类型的单元格的最佳方式是什么?
【参考方案1】:
你的问题不清楚。是否要启用垂直滚动到 UITextView 并禁用水平滚动?
其他问题:
试试 UITableView,使用不同的自定义单元格。
或者
很简单,使用UIView,增加scrollView.contentSize。
这是在一个 UITableView 中使用不同自定义单元格的方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
if(indexPath.section==0)
static NSString *simpleTableIdentifier = @"SimpleTableCell";
FirstCustomCell *cell = (FirstCustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FirstCustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.textLabel.text= @"FirstCustomCellText";
return cell;
else
static NSString *simpleTableIdentifier = @"SimpleTableCell";
SecondCustomCell *cell = (SecondCustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SecondCustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.textLabel.text= @"SecondCustomCellText";
return cell;
【讨论】:
我正在尝试 UITableView 与不同的自定义单元格,我得到了结果。现在的问题是,我怎样才能拥有 2 种不同类型的自定义单元格?我只做了一个。 对不同的部分使用不同的自定义单元格,就像我在上面的回答中向您展示的那样。我在示例中只使用了两个自定义单元格,您可以使用任意数量的自定义单元格。 在那个应用程序中,我用另一个系统解决了我的问题(只是一种带有标签的单元格,我用图像替换了一些特定的文本,比如@“... image.png ...”正确的图像,但这个答案对我来说真的很有用另一个应用程序!谢谢:D【参考方案2】:您可以尝试在单元格中使用 UICollectionView。
【讨论】:
在单元格内使用 UICollectionView 有什么好处?以上是关于如何在垂直 UIScrollView 中显示文本和其他对象?的主要内容,如果未能解决你的问题,请参考以下文章