如何在rubymotion中创建多个分组的UITableView部分?

时间:2013-07-04 06:29:11

标签: uitableview rubymotion sections

如何在rubymotion中创建多个分组的UITableView部分?

下面的代码不完整。我需要帮助确定不同的UITavleViewDataSource方法如何相互协作。

class TableController < UIViewController

    def viewDidLoad
        super
        self.title = "TableView"
        @table = UITableView.alloc.initWithFrame(self.view.bounds,
            style: UITableViewStyleGrouped)
        view.addSubview(@table)

        @table.dataSource = self
        @table.delegate = self

        @data = ['First Name','Last Name','Birthdate', '']
        @datatwo = ['Locations','Allergens']

    end

    def tableView(tableView, numberOfSectionsInTableView: tableView)
        2
    end

    def tableView(tableView, numberOfRowsInSection: section)
        # ***I'm not sure if I should list both my arrays above***
    end

    def tableView(tableView, cellForRowAtIndexPath: indexPath)
        @reuseIdentifier ||= "CELL_IDENTIFIER"

        cell = tableView.dequeueReusableCellWithIdentifier(@reuseIdentifier)
        cell = UITableViewCell.alloc.initWithStyle(
                UITableViewCellStyleDefault,
                reuseIdentifier: @reuseIdentifier)

        @text = UITextField.alloc.initWithFrame([[140, 12], [160, 50]])

        if (indexPath.section) == 0

            if (indexPath.row) == 0
                @first = @text
                @first.placeholder = "First Name" 
                @first.textAlignment = UITextAlignmentRight
                cell.addSubview(@first)
            elsif (indexPath.row) == 1
                @last = @text
                @last.placeholder = "Last Name"
                @last.textAlignment = UITextAlignmentRight
                cell.addSubview(@last)

            end
        end

        if (indexPath.section) == 1
                        if (indexPath.row) == 0
                @location = @text
                @location.placeholder = "Location" 
                @location.textAlignment = UITextAlignmentRight
                cell.addSubview(@location)
            elsif (indexPath.row) == 1
                @kidallergens = @text
                @kidallergens.placeholder = ""
                @kidallergens.textAlignment = UITextAlignmentRight
                cell.addSubview(@kidallergens)
            end
        end


        cell.textLabel.text = @data[indexPath.row]
        cell
    end

    def tableView(tableView, didSelectRowAtIndexPath: indexPath)
        tableView.deselectRowAtIndexPath(indexPath, animated: true)
    end
end

1 个答案:

答案 0 :(得分:1)

使用section参数确定要返回的号码。

def tableView(tableView, numberOfRowsInSection: section)
  if section == 0
    @data.length
  elsif section == 1
    @datatwo.length
  else
    0
  end
end