我正在创建一些显示信息的卡片。每张卡都将用UIView
表示,因此我在不同的.xib文件中创建每张卡。
我的其中一张卡包含一个自定义UITableView
以及将使用UITableViewDataSource
和UITableViewDelegate
协议加载和管理的单元格。
然而,当我搜索Table View组件并将其拖到我的.xib文件时,它会加载一个我无法自定义的预定义UITableView。 我很擅长使用单独的.xib文件(我一直在使用故事板)所以我不知道如何在这种情况下自定义我的TableView,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
Xibs没有像故事板那样的tableviewcell原型,不幸的是它只是一个故事板。 Xibs有点陈旧,但仍有其目的。但是你可以在同一个xib文件中拥有与tableview不同的单元格,它们只是与tableview分开。
你会像
那样加载xibvar objects: NSArray?;
NSBundle.mainBundle().loadNibNamed("MyTableView", owner: self, topLevelObjects: &objects)
然后在数组中,根据xib中元素的顺序,您将获得xib中所有元素的数组。因此,位置0可能是你的桌面视图,然后1将是一个单元格,2个单元格等...取决于你有多少。您可能只会加载cellForRowAtIndexPath:
中的单元格,而该表格将位于viewDidLoad
或其他内容
答案 1 :(得分:0)
制作一个tableview并创建一个tableview实例。 在viewdidload中编写此代码... self.tableView.registerNib(UINib(nibName:" PackageDetailTVCell",bundle:nil),forCellReuseIdentifier:" Cell")
func tableView(tableView:UITableView,numberOfRowsInSection section:Int) - > INT { return self.arrayDict.count }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! PackageDetailTVCell
let dict = self.arrayDict[indexPath.row]
cell.labelOfferPrice.text = (dict .objectForKey("offer_price") as! String)
cell.labelName.text = (dict .objectForKey("title") as! String)
cell.labelRegularPrice.text = (dict .objectForKey("price") as! String)
return cell
}