Форум программистов, компьютерный форум CyberForum.ru

Правильная обработка нажатя кнопки в TableView - Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS/iPhone Где gamescene.m ? http://www.cyberforum.ru/ios-dev/thread1373796.html
Здравствуйте! Я хочу написать(в качестве обучения) игру по этой статье=> http://habrahabr.ru/post/225517/ . В ней говорится что слева в навигаторе файлов должен быть файл gamescene.m , а у меня такого нет. подскажите пожалуйста решение этой проблемы...xcode шестой(если это важно)
Программирование iOS/iPhone Сохранение фигуры, нарисованной тачем Доброго времени суток. Случалось ли кому-нибудь работать с "рисованием" на экране? Мне нужно, чтобы пользователь пальцем нарисовал любую фигуру - от линии до какой-то загогулины, сохранить это и потом сравнивать на идентичность полученные фигуры. Это нечто, аналогичное блокировке/разблокировке по шаблону на Android-устройствах, только без опорных точек, произвольными фигурами. Если у кого-то... http://www.cyberforum.ru/ios-dev/thread1372884.html
Приложение не устанавливается на ios 8.1.3 Программирование iOS/iPhone
Написал приложение в xcode 6, всем доволен, протестировал на 4s, все работает, пришёл друг с 5s, и на него приложение не ставится, у него стоит прошивка 8.1.3, а в моём xcode максимальная прошивка 8,0 (как я понял), неужели ничего нельзя сделать кроме как скачивать новый xcode?
Что за ошибка CoreData Программирование iOS/iPhone
Доброго времени суток. Я только начал программировать. Столкнулся с проблемой. При создании любой базы в CoreData выдает вот такую ошибку: CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null)...
Программирование iOS/iPhone Не получается сделать unwind seque && подключить производный класс (XCode 6) http://www.cyberforum.ru/ios-dev/thread1368293.html
Доброго времени суток! Недавно начал изучать программирование на Objective C и разработку под iOS. Занимаюсь по статьям на developer.apple.com и иногда посматриваю видеоуроки (только по разработке интерфейса). Есть небольшой (учебный) опыт программирования на C, C++ и довольно много на C#. Сегодня столкнулся сразу с двумя проблемами (XCode): 1) при попытке создать unwind segue из...
Программирование iOS/iPhone Не раскрывается (исчез) TableView на ScrollView Здравствуйте. Есть TableView, на обычной вьюхе всё работает нормально. Высота ячеек рассчитывается и т.д. Но вот когда я сделал вью контроллер freeform и задал необходимую высоту и ниже трех лейблов положил я ScrollView, а на него уже положил TableView, и еще один View, то TableView перестал раскрываться. Т.е. его вообще не видно! Почему так? Вчера весь день просидел, экспериментировал с... подробнее

Показать сообщение отдельно
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
15.02.2015, 20:41  [ТС]     Правильная обработка нажатя кнопки в TableView
ну во-первых вы создаете ячейку следующим образом:
сначала пытаетесь получить ячейку по reuseIdentifier, если ее нет, тогда уже создаете ее, подписываетесь на все события и все
у вас не получится подписаться на ее события дважды таким образом
Ну я так и делаю вроде.
C#
1
2
3
4
 var cell = tableView.DequeueReusableCell ("CellID_But") as customViewCell_with_Button;
 
                if (cell == null)
                    cell = new customViewCell_with_Button ();
Но cell никогда не бывает равно нулю. Поэтому обработчик события добавляется каждый раз при заходе в GetCell и соответственно по наступлении события он зайдет в обработчик столько раз, сколько было добавлено.
потом оперируйте больше датасорсом, а не самими ячейками, т.е. есть массив данных, и когда нажимаете удалить, тогда удаляете данные из массива и перерисовываете табличку, все.
никаких привязок к ui, особенно, который динамически строится и меняется, только датасорс, только хардкор
Я так и делаю.
C#
1
2
_User_Data.name_mash_picker_list.RemoveAt (but.Tag-2); //удалить элемент списка соответствующий кнопке
            _tableView.ReloadData ();// перерисовать таблицу
Где name_mash_picker_list это список (List<string>) строк. Это и есть датасорс. Никаких ячеек я не удаляю. Тут дело в том, что например я нажал кнопку с тегом 5 (кнопку в пятой строке) соответственно удалиться элемент списка с индексом 5 (на but.Tag-2 не обращайте внимания. так надо. ) таблица перестроилась и теперь в списке элементов под пятым номером уже другой элемент, но тут в обработчик программа заходит ещё раз, так как обработчик события добавлялся столько раз, сколько отрисовывалась конкретная ячейка. И удаляет опять элемент с номером 5, а там уже находится совсем другой элемент, который мы не хотим удалять. Т.о. при нажатии на кнопку удалить может удалиться только та ячейка которая нужна, а может и вместе с несколькими соседними.
 
Текущее время: 11:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru