Nano Hash - криптовалюты, майнинг, программирование

Пользовательские кнопки редактирования для сегментированных элементов управления TableViews

У меня есть tableViewController с segmentedControl. Все отлично работает, данные отображаются так, как предполагалось, в каждом табличном представлении, и я могу переключаться между элементами управления каждым сегментом.

Я хотел бы добавить функцию Swipe Delete для каждого TableView segmentControl. Но я хочу, чтобы у сегмента 1 была 1 кнопка, а у сегмента 2 — 2 кнопки.

Ex:

Segment 1
  Button: More
Segment 2
  Button: More
  Button: Delete

Как я могу это сделать, на данный момент я продолжаю получать пустое место в сегменте 1, которое приводит к сбою приложения при нажатии. Можно ли как-то скрыть это пустое место/кнопку от Segment1?

override func tableView(tableView: UITableView, editingStyleForRowAtIndexPath     
  indexPath: NSIndexPath) -> UITableViewCellEditingStyle {

    var table:UITableViewCellEditingStyle = UITableViewCellEditingStyle.None

    switch (self.segmentControl.selectedSegmentIndex) {
    case 0:
        table = UITableViewCellEditingStyle.Delete
    case 1:
        table = UITableViewCellEditingStyle.Delete
    default:
        break
    }

    return table

}

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath 
indexPath: NSIndexPath) -> [AnyObject]? {

    var moreRowAction = UITableViewRowAction()
    var deleteRowAction = UITableViewRowAction()

    switch (self.segmentControl.selectedSegmentIndex) {
    case 0:
        moreRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "More", handler:{action, indexpath in
            println("MORE•ACTION");
        });

    case 1:
        moreRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "More", handler:{action, indexpath in
            println("MORE•ACTION");
        });
        moreRowAction.backgroundColor = UIColor(red: 0.298, green: 0.851, blue: 0.3922, alpha: 1.0);

        deleteRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete", handler:{action, indexpath in
            println("DELETE•ACTION");
        });
    default:
        break
    }

    return [deleteRowAction, moreRowAction];
}

Ответы:


1

Верните один UITableViewRowAction в случае 0, верните два UITableViewRowAction в случае 1, попробуйте это

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {

    var moreRowAction = UITableViewRowAction()
    var deleteRowAction = UITableViewRowAction()

    switch (self.segmentControl.selectedSegmentIndex) {
    case 0:
        moreRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "More", handler:{action, indexpath in
            println("MORE•ACTION");
        });
        return [moreRowAction];
    case 1:
        moreRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "More", handler:{action, indexpath in
            println("MORE•ACTION");
    });
        moreRowAction.backgroundColor = UIColor(red: 0.298, green: 0.851, blue: 0.3922, alpha: 1.0);

        deleteRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete", handler:{action, indexpath in
            println("DELETE•ACTION");
        });
        return [deleteRowAction, moreRowAction];
    default:
        break
    }

    return [deleteRowAction, moreRowAction];
}
02.07.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..