UITableView 部分 headers 不同步滚动

UITableView sections headers don't scroll synchronously

我在包含部分的 table 视图中有一个奇怪的行为。当我滚动 table 所有部分时 headers 停留在该位置,下面的 table 视图滚动。仅当我 scroll/touch 和 headers 都同步滚动时。知道这里出了什么问题吗?

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

如果我正确理解你的场景(请原谅我):

table 视图中 header 的目的是您目前正在发生的事情。 Headers 应该出现在行顶部的视图中,直到 header 的所有行都被滚动,一旦所有行都被滚动,header 也会移动它自己.

如果您想 header 与行一起滚动,您实际上应该考虑为此目的制作一行而不是 header,因此不会创建任何部分。

如果您想使用 headers 进行操作,请按照已提供的 link "JRG-Developer" 进行操作:Change Default Scrolling Behavior of UITableView Section Header

但是,如果您尝试创建像行一样的正常滚动 headers,那么我建议为此目的使用行并创建自定义行来实现 header ].

RubyMotion Motion 论坛中 caram 的回答

If you inherit from UITableViewController, self.view is already a tableView, so you end up with 2 tableView. Just delete @table = UITableView.alloc.init...

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