草庐IT

ios - 在 Swift 的 iOS 应用程序中显示表格(在 html/Excel 电子表格中的意思)

coder 2023-09-05 原文

我一直在寻找有关如何执行此操作的解决方案,但我有点困惑。

我想在我的应用程序中显示数据表,而不是 Apple 的 TableView,更像是您在 Excel 或 HTML 中找到的表格。 此外,在我的应用程序中,我将在不同的页面中有像这样的多个表格,我希望以相同的方式设置样式并非所有表格都具有相同的行数或列。这些表格可能会与图像或文本一起显示在屏幕上,但可能永远不会单独显示。 (所以我需要一个可以放入 UIViewController 的元素)

基本上是这样的表格(我把它从谷歌图片中删除,因为我的数据是 secret 的)

我有关于如何执行此操作的理论,但我不确定它是否正确或具体如何执行。

我的理论是我应该创建一个 UICollectionView 的子类,我们称它为 MyTablesView。 MyTablesView 将有一个名为数据的变量。我的包含表格的页面/VC 将具有 MyTablesView 的实例,并在此变量中为其提供数据。 MyTablesView 负责设置样式和显示此数据。

我是 Swift 的新手,我不太清楚,所以我不确定如何解决这个问题。我对如何编写 UICollectionView 代码感到很困惑。我试着阅读本教程:http://www.raywenderlich.com/78550/beginning-ios-collection-views-swift-part-1但它使用的是 UICollectionViewController 而不是 UICollectionView,所以我不确定如何调整它。

所以现在这就是我所拥有的... 类 MyTablesView: UICollectionView{ 变量数据 = [字符串] } (我现在放字符串是因为我不能 100% 确定表中的数据,它最终可能会是双倍的,但我还需要一些标题...)

所以我想我的问题是: 如何正确地子类化 UICollectionView 以显示将由 ViewController 提供给它的数据?

如果有任何不清楚的地方,请告诉我。 提前致谢。

最佳答案

好吧,事实证明我对 SO 的搜索还不够彻底,因为这是我一直在寻找的答案: How to make a simple collection view with Swift

由于这是另一个 Stack Overflow 主题,我应该复制答案还是信任 Stack Overflow 以保持链接有效?


我链接到的答案显示了一个数据网格,但我想要一个表格,这意味着我必须稍微调整一下,因为我想要行,所以下面是我的代码的概述。其中大部分与我链接到的答案相似。我所做的更改涉及要在多维数组 中显示的数据,这意味着我还必须在我的类中添加numberOfSectionsInCollectionView 方法并相应地调整其他方法。 我仍然需要做一些样式来让它看起来正确。

  1. 在我的 Storyboard中,我有一个 VC,我在其中拖动了一个 UICollectionView。在它的第一个单元格中,我拖了一个 UILabel。

  2. VC 实现了 UICollectionViewDataSource 和 UICollectionViewDelegate,并有一个名为 data 的参数,其中包含要显示的数据。 从 Storyboard 中,我按住 ctrl 并拖动了 UICollectionView 并将其命名为 mytable。

    class MyView: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{
      @IBOutlet weak var mytable: UICollectionView! 
      var data = [[String]]()
    
      override func viewDidLoad() {
        data = [["first", "1", "2"], ["second", "3", "4"]]
      }
    
    // --- UICollectionViewDataSource protocol ---
    
      //returns number of sections = subarrays in data
      func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int{
        return data.count
      }
    
      //returns number of items in a section= number of elements in a subarray in data    
      func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return data[section].count
      }
    
    
      func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        // get a reference to our storyboard cell
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! MyTableCells
    
        // Use the outlet in our custom class to get a reference to the UILabel in the cell
        cell.myLabel.text = data[indexPath.section][indexPath.item]
    
        return cell
      }
    
    // --- UICollectionViewDelegate protocol ---
      func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
        // handle tap events
        print("You selected cell #\(indexPath.item)!")
      }
    

  3. 我还创建了 UICollectionViewCell 的子类。 在 Storyboard 中,我按住 ctrl+ 将 UILabel 从 UICollectionView 的第一个单元格拖到我的子类中,并将其命名为 myLabel。

    import Foundation
    class MyTableCells: UICollectionViewCell {  
      @IBOutlet weak var myLabel: UILabel! 
    }
    

在 Storyboard中,我将委托(delegate)和数据源挂接到 VC(选择 UICollectionView,单击圆圈并将其拖到 VC)

我现在只为我的一个 VC 做了这件事,我猜我可能实际上是 UIViewController 的子类,以便能够通过这个实现拥有多个 VC。

关于ios - 在 Swift 的 iOS 应用程序中显示表格(在 html/Excel 电子表格中的意思),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32454528/

有关ios - 在 Swift 的 iOS 应用程序中显示表格(在 html/Excel 电子表格中的意思)的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  5. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  6. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  9. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  10. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

随机推荐