在Swift的iOS应用程序中显示一个表(在htmlExcel电子表格中)

在Swift的iOS应用程序中显示一个表(在htmlExcel电子表格中),第1张

概述我一直在寻找有关如何做到这一点的解决方案,但我有点困惑. 我想在我的应用程序显示数据表,而不是Apple的TableView,更像是在Excel或HTML中找到的表. 此外,在我的应用程序中,我将在不同的页面中有多个这样的表格,我希望以相同的方式设置样式,而不是所有具有相同行数或列数的表格.这些表格可能会与图像或文本一起显示在屏幕上,可能永远不会单独显示. (所以我需要一个可放在UIViewCo 我一直在寻找有关如何做到这一点的解决方案,但我有点困惑.

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

基本上就像这样一张桌子(因为我的数据是保密的,我把它放在谷歌图片上)@H_419_10@

我有关于如何做到这一点的理论,但我不确定它是正确的还是确切地说如何做到这一点.

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

我对Swift相当新,我不知道究竟是什么,所以我不确定如何解决这个问题.我对如何编写UICollectionVIEw非常困惑.我试着阅读这个教程:http://www.raywenderlich.com/78550/beginning-ios-collection-views-swift-part-1但它是一个UICollectionVIEwController而不是UICollectionVIEw所以我不知道如何调整它.

所以现在这就是我所拥有的……@H_419_10@    class MytablesVIEw:UICollectionVIEw {@H_419_10@      var data = [String]@H_419_10@    }@H_419_10@(我现在放了字符串,因为我不是100%肯定会在表格中的数据,它可能最终会成为双打,但我还需要一些标题……)

所以我想我的问题是:@H_419_10@如何正确地子类化UICollectionVIEw以显示VIEwController将提供给它的数据?

如果有什么不清楚,请告诉我.@H_419_10@提前致谢.

解决方法 好吧,事实证明我没有在SO上彻底搜索,因为这是我一直在寻找的答案: @H_419_10@How to make a simple collection view with Swift

由于它是另一个Stack Overflow主题,我应该复制答案还是信任Stack Overflow来保持链接活着?

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

>在我的故事板中,我有一个VC,我拖动了一个UICollectionVIEw.在它的第一个单元格中,我拖了一个UILabel.@H_419_10@> VC实现了UICollectionVIEwDataSource和UICollectionVIEwDelegate,并且有一个名为data的参数,其中包含要显示的数据.@H_419_10@从故事板我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)!")  }

}@H_419_10@>我还创建了UICollectionVIEwCell的子类.@H_419_10@从故事板我ctrl将UILabel从UICollectionVIEw的第一个单元格拖到我的子类中,并将其命名为myLabel.

import Foundationclass MytableCells: UICollectionVIEwCell {    @IBOutlet weak var myLabel: UILabel! }

在故事板中,我将委托和数据源挂钩到VC(选择UICollectionVIEw,单击圆圈并将其拖动到VC)

我现在只为我的一个VC做过,我实际上可能是UIVIEwController的子类,因为我猜这个实现可以有多个VC.

总结

以上是内存溢出为你收集整理的在Swift的iOS应用程序中显示一个表(在html / Excel电子表格中)全部内容,希望文章能够帮你解决在Swift的iOS应用程序中显示一个表(在html / Excel电子表格中)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1007226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存