UITableView部分标题不会同步滚动

时间:2015-05-15 07:32:51

标签: ios iphone tableview rubymotion

我在带有部分的表视图中有一个奇怪的行为。当我滚动表格时,所有部分标题都保留在该位置,并且下面的表格视图滚动。只有当我滚动/触摸标题时,它们才会同步滚动。知道这里有什么问题吗?

enter image description here

class TVController < UITableViewController

  def viewDidLoad
    super
    @sections = [{:title=>"30.03", :bookings=>["Opening Balance"]},
                 {:title=>"31.03", :bookings=>["Thai", "Coffee"]},
                 {:title=>"02.04", :bookings=>["Pizza"]},
                 {:title=>"03.04", :bookings=>["Nido, View", "Coffee ", "Withdrawel ", "Coffee "]},
                 {:title=>"07.04", :bookings=>["Mautgebühren "]},
                 {:title=>"11.04", :bookings=>["Tipp Hofer Alpl ", "Meral ", "Menterschwaige", "Eis"]},
                 {:title=>"12.04", :bookings=>["Flaucher"]},
                 {:title=>"14.04", :bookings=>["Thai "]},
                 {:title=>"25.04", :bookings=>["ATM", "Samen Schmitz", "Edeka ", "Maelu ", "Clearence"]},
                 {:title=>"26.04", :bookings=>["Auerdult ", "Schneebesen"]},
                 {:title=>"28.04", :bookings=>["Thai"]},
                 {:title=>"30.04", :bookings=>["Bahnhof "]},
                 {:title=>"05.05", :bookings=>["Thai"]},
                 {:title=>"07.05", :bookings=>["Valleys "]},
                 {:title=>"10.05", :bookings=>["Café "]}]

    @table = UITableView.alloc.initWithFrame(self.view.bounds, style:UITableViewStyleGrouped)
    @table.dataSource = self
    @table.delegate = self
    self.view.addSubview @table
  end

  def tableView(tableView, cellForRowAtIndexPath: indexPath)
    @reuseIdentifier ||= 'ACCOUNT_TABLE_CELL'
    cell = tableView.dequeueReusableCellWithIdentifier(@reuseIdentifier) || begin
      UITableViewCell.alloc.initWithStyle(UITableViewCellStyleDefault, reuseIdentifier:@reuseIdentifier)
    end
    cell.textLabel.text = self.booking(indexPath)
    cell
  end

  def numberOfSectionsInTableView(tableView)
    self.sections.length
  end

  def tableView(tableView, numberOfRowsInSection: section)
    self.sections[section][:bookings].length
  end

  def tableView(tableView, titleForHeaderInSection: section)
    self.sections[section][:title]
  end

  def booking(indexPath)
    @sections[indexPath.section][:bookings][indexPath.row]
  end
end

2 个答案:

答案 0 :(得分:0)

如果我正确理解你的情景(请原谅我,如果我不是):

表格视图中标题的用途是您当前正在进行的标题。标题应该出现在行顶部的视图中,直到滚动所有行的所有行,一旦所有行都滚动,标题也会自动移动。

如果您想要将标题与行一起滚动,那么您应该考虑为此目的而不是标题创建一行,因此不会创建任何部分。

如果您想使用标题,请点击链接&#34; JRG-Developer&#34;已提供:Change Default Scrolling Behavior of UITableView Section Header

但是,如果你试图创建像行一样的正常滚动标题,那么我建议为此目的使用行并创建一个自定义行来实现该标题的目的。

答案 1 :(得分:0)

在RubyMotion Motion论坛中通过 caram 回答

  

如果从UITableViewController继承,则self.view已经是一个tableView,所以   你最终得到了2个tableView。只需删除@table = UITableView.alloc.init ...

http://community.rubymotion.com/t/uitableview-sections-headers-dont-scroll-synchronously/525