如何将拖放行从一个部分拖到另一个UITableView部分

时间:2018-05-30 08:45:41

标签: ios swift uitableview drag-and-drop

这是我的代码,我将行拖放到同一个UITableview部分。我创建了数组hiddenOrderList。

fieldArray

我想将行从第一部分拖放到另一部分。

const getMockedFields = (fieldNames, periods) => {
  const field = {
    get: idx => periods[idx],
  };
  return {
    map: callback => fieldNames.map((fieldname, idx) => callback(fieldname, idx, field)),
  };
};

const fieldNames = ['periods[0]', 'periods[1]'];
const periods = [{
  fom: '2017-10-01',
  id: '2017-10-01 | 2017-10-10',
  openForm: false,
  tom: '2017-10-10',
  updated: false,
}, {
  fom: '2018-10-01',
  id: '2018-10-01 | 2018-10-10',
  openForm: true,
  tom: '2018-10-10',
  updated: false,
}];

const updatePeriode = sinon.spy();
const editPeriode = sinon.spy();
const cancelEditPeriode = sinon.spy();
const isAnyFormOpen = sinon.spy();

describe('<UttakPeriod>', () => {
  it('should render UttakPeriod', () => {
    const wrapper = shallowWithIntl(<UttakPeriod
      fields={getMockedFields(fieldNames, periods)}
      updatePeriode={updatePeriode}
      editPeriode={editPeriode}
      cancelEditPeriode={cancelEditPeriode}
      isAnyFormOpen={isAnyFormOpen}
      periods={periods}
      meta={meta}
      readOnly
    />);

    const uttakPeriodType = wrapper.find('UttakPeriodType');
    expect(uttakPeriodType).to.have.length(2);
    const uttakPeriodContent= wrapper.find('UttakPeriodContent');
    expect(uttakPeriodContent).to.have.length(2);
  });

下面,我为我的第一部分创建了自定义单元格:

var displayedOrderList = [CarouselOrder]()
var hiddenOrderList = [CarouselOrder]()

我可以将行拖放到同一部分,但我想拖放到另一部分。当我拖放到另一个部分时,应用程序崩溃了&#34;致命错误:索引超出范围&#34;消息。

func tableView(_: UITableView, numberOfRowsInSection section: Int) -> Int {
    switch section {
    case 0:
        return displayedOrderList.count
    case 1:
        return hiddenOrderList.count
    default:
        return 1
    }
}

0 个答案:

没有答案