如何在垂直 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 中显示文本和其他对象?的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何在 UIScrollView 中显示长文本?

UIScrollview在垂直和水平ios中滚动

Objective-C:如何在 UIScrollView 中禁用垂直滚动

如何在 UIScrollView 中仅禁用垂直滚动?

css如何设置文本在li元素中垂直居中显示

具有动态大小内容的 UIScrollView