我制作的应用程序显示了节日的时间表。该节日有多个阶段,每个多个乐队。我的想法是为每个阶段创建一个包含行的TableView。然后在那一行我想放置多个按钮,每个按钮代表一个乐队。我使用按钮,因为我想要一个乐队/艺术家的后续页面。
到目前为止我得到的是:我有一个包含3行的TableView。我只用一个按钮填充行,以检查它是否滚动好。该按钮填充整个滚动视图。 scrollview比tablecell长5倍。
我的问题是:当我滚动时,第一眼看到的所有内容都是空白的。虽然它应该用绿色按钮填充。
我的代码:
class TimeTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
//@IBOutlet var scrollView: UIScrollView!
//var imageView: UIImageView!
@IBOutlet var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
//cell.textLabel?.text = self.items[indexPath.row]
var scrollview = UIScrollView(frame: cell.bounds)
scrollview.contentSize = CGSizeMake(cell.bounds.width * 5, cell.bounds.height)
scrollview.pagingEnabled = false
var button = UIButton()
button.frame = CGRect(x: 0, y: 0, width: scrollview.frame.size.width, height: scrollview.frame.size.height)
//x: 0, y: 0, width:image.size.width, height:scrollView.frame.size.height
button.backgroundColor = UIColor.greenColor()
button.setTitle("bladiebladiebla juj een button in een scrollview in een table cell, nu nog een aantal buttons", forState: UIControlState.Normal)
//var label = UILabel(frame: scrollview.bounds)
//label.text = "bladiebladiebla juj een label in een scrollview in een table cell, nu nog een aantal buttons"
scrollview.addSubview(button)
cell.contentView.addSubview(scrollview)
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("You selected cell #\(indexPath.row)!")
}
}
答案 0 :(得分:0)
我已经实现了你的代码,并且做了一些像这样的改变......
开始时Scrollview没有正确的单元格高度,因为我在xib中的定义是80但是Scrollview高度显示在50左右
我已经做了scrollview.removeFromSuperView,因为当我在didSelceting单元格后回来时,它会显示正确的单元格大小80并给出固定的滚动高度作为单元格高度..
//change by me..
var scrollview = UIScrollView()
----------------------------------------------
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
UITableViewCell
{
var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
//cell.textLabel?.text = self.items[indexPath.row]
//change by me..
scrollview.removeFromSuperview()
scrollview = UIScrollView(frame: CGRectMake(0, 0, cell.frame.size.width, 80))
scrollview.contentSize = CGSizeMake(cell.frame.size.width * 5, cell.frame.size.height)
scrollview.pagingEnabled = false
var button = UIButton()
button.frame = CGRect(x: 0, y: 0, width: scrollview.frame.size.width, height: scrollview.frame.size.height)
//x: 0, y: 0, width:image.size.width, height:scrollView.frame.size.height
button.backgroundColor = UIColor.greenColor()
button.setTitle("bladiebladiebla juj een button in een scrollview in een table cell, nu nog een aantal buttons", forState: UIControlState.Normal)
//var label = UILabel(frame: scrollview.bounds)
//label.text = "bladiebladiebla juj een label in een scrollview in een table cell, nu nog een aantal buttons"
var button1 = UIButton()
button1.frame = CGRect(x: button.frame.size.width, y: 0, width: scrollview.frame.size.width, height: scrollview.frame.size.height)
//x: 0, y: 0, width:image.size.width, height:scrollView.frame.size.height
button1.backgroundColor = UIColor.yellowColor()
button1.setTitle("bladiebladiebla juj een button in een scrollview in een table cell, nu nog een aantal buttons", forState: UIControlState.Normal)
//var label = UILabel(frame: scrollview.bounds)
//label.text = "bladiebladiebla juj een label in een scrollview in een table cell, nu nog een aantal buttons"
scrollview.addSubview(button)
scrollview.addSubview(button1)
cell.contentView.addSubview(scrollview)
return cell
}