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

Корзина магазина - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Не создается объект. Ошибка "autorelease called without pool for object of class" http://www.cyberforum.ru/objective-c/thread1506285.html
Здравствуйте. Почему не создается объект Rect? #import <Foundation/Foundation.h> @interface Rect : NSObject <NSCopying> { double width; double height; } - (Rect *) initWithWidth:(double)w
Objective-C Посоветуйте книги для программирования на ios Прочитал 20 глав Кочана 2010года. Дальше пошло существенное отличие с версией Xcode и ios. Читаю книгу Пайлон Т., Пайлон Д. - Программируем для iPhone и iPad - 2014 Ну так себе заходит. Желательно как можно более полную. Заранее спасибо. http://www.cyberforum.ru/objective-c/thread1499550.html
Вызвать метод View Controller'a из другого View Controller'a Objective-C
Какой есть простой способ вызвать метод одного контроллера из другого ? Метод - остановка обновления координат, если что. - (void)stopTracking{ NSLog(@"stop tracking"); ; }
Страшная анимация таблицы, после добавления кодом на View и добавления Constraint-ов Objective-C
делаю дропдаун, чтобы можно было в любом месте вызвать и он разворачивался из нужной вьюшки. дропдаун вьюшку загружаю из ксиба, добавляю на главную вью и анимировано меняю констреинт высоты но !! происходит не только анимация высоты таблицы, но и ширины ячеек таблицы от того размера, который был в ксибе, хотя сама таблица занимает нужный размер (и выглядит это страшно) ...
Objective-C Как переключаться между внутренними вкладками свайпом слева направо? http://www.cyberforum.ru/objective-c/thread1497006.html
Всем привет! Во первых спасибо этому форуму и людям отвечающим в темах obj c! Много хороших ответов и тем! Товарищи, посоветуйте, как реализовать подобное: В приложении есть 5 таб вкладок. На одной из них должны быть еще 3 вью контроллера, со своими кнопками и тд. И хотеось бы переключатся между этими внутреними 3 выкладками свайпом слева направо. С помощью Page View Controller'a...
Objective-C Редактирование заголовка UITableViewCell Здравствуйте. Я делаю сейчас небольшое задание по Objective-C. Это обычный To-Do List. По кнопке + на новом экране создается объект To-Do Item и добавляется на главный экран. По свайпу влево открывается контекстное меню ячейки. Я хочу, чтобы по нажатию кнопки Edit открывался экран добавления, но с измененным заголовком (на Edit вместо Add), в поле уже был текст (имя объекта, которое мы и... подробнее

Показать сообщение отдельно
d3vn
2 / 2 / 3
Регистрация: 18.11.2013
Сообщений: 118

Корзина магазина - Objective-C

29.07.2015, 12:02. Просмотров 532. Ответов 0
Метки (Все метки)

Всем привет, ребят, подскажите, пожалуйста, нужны хоть какие-то идеи, уже не могу:

Есть корзина магазина, которая представляет из себя tableView. Каждый товар - это ее cell. В каждом cell есть checkBox, который при нажатии добавляет товар в прайс (загорается галочка) и считается общая стоимость. Но нужно сделать так, чтобы товары, попадая в корзину, уже имели этот чекбокс активным и автоматически считалась их стоимость. Есть метод, который вызывается при нажатии на чекбокс и проделывает всю эту процедуру (загорание чекбокса и добавление товара в подсчет прайса). Я беру этот метод и вызываю вроде как при создании cell, вроде все должно работать, но в него приходит из cell.checkBox - indexPath: nil, item: nil, а если передавать и indexPath и item, то он бесконечно бегает по всем позициям в корзине или все равно ничего не делает. В чем может быть ошибка?
Прикладываю листинги addTarget, который срабатывает при нажатии по чекбоксу, сам метод, и как я вызываю этот метод в cellForRow.

Сам addTarget:

Objective-C
1
[cell.checkBox addTarget:self action:@selector(radioControlDidChangeValue:) forControlEvents:UIControlEventValueChanged];
Метод, который все делает (из addTarget)

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- (void)radioControlDidChangeValue:(AIMRadioControl *)control {
 
    AIMBucketTableViewCell *cell = [control searchForSuperViewOfClass:[AIMBucketTableViewCell class]];
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
    WishListItem *item = [self.fetchedController objectAtIndexPath:indexPath];
    item.selectedRaw = control.data.selected;
    
    [control changeSelectedUI:YES];
 
    id <NSFetchedResultsSectionInfo> sectionInfo = self.fetchedController.sections[indexPath.section];
    NSArray *itemObjects = [sectionInfo objects];
 
    BOOL selectedHeader = YES;
    NSEnumerator *iterator = [itemObjects objectEnumerator];
    item = [iterator nextObject];
    while (selectedHeader && item != nil) {
        if (!item.selectedRaw && item.product.isAvailableRaw) {
            selectedHeader = NO;
        }
 
        item = [iterator nextObject];
    }
 
    AIMBucketHeaderView *headerView = (AIMBucketHeaderView *) [self.tableView headerViewForSection:indexPath.section];
    headerView.radioControll.data.selected = selectedHeader;
    [headerView.radioControll changeSelectedUIAnimatedWithDelay:0.10];
    
    [WishListItem saveWishListLastChangeDateInUserDefaults:[NSDate new]];
    
    [self.summaryView calculateTotalPrice];
    
}
Метод ячейки таблицы

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 
    if ([[self.fetchedController fetchedObjects] count] == 0) {
        return [self emptyCellForTableView:tableView atIndexPath:indexPath];
    }
 
    WishListItem *cartItem = [self.fetchedController objectAtIndexPath:indexPath];
    Product *pr = cartItem.product;
 
 
    AIMBucketTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"bucketCell" forIndexPath:indexPath];
    
    
    
    //Indice
    switch (pr.indiceRaw) {
        case BIOTypeNone:
            cell.indiceImageView.image = nil;
            break;
        case BIOTypeBIO:
            cell.indiceImageView.image = [UIImage imageNamed:@"bio.png"];
            break;
        case BIOTypeSG:
            cell.indiceImageView.image = [UIImage imageNamed:@"sg.png"];
            break;
    }
 
    //Text
    cell.maxLimitLabel.text = NSLocalizedString(@"Max avail.", nil);
    cell.countTextField.text = [self.countNumberFormatter stringFromNumber:cartItem.count];
    cell.productNameLabel.text = pr.fullName;
    cell.productSubtitle.text = pr.manufacturer;
    cell.productPriceLabel.text = [self.currencyFormatter stringFromNumber:pr.price];
    cell.sumPriceLabel.text = [self.currencyFormatter stringFromNumber:@([pr.price doubleValue] * [cartItem.count integerValue])];
    //Avail mode
    cell.modeState = [self modeForWishListItem:cartItem];
    [cell.modeState setCurrentMode];
    
    ////////////////////////CheckBox
 
    [cell.checkBox setIsTurnOn:YES]; //X or check/empty on checkbox (image)
    
    if (cell.wasChecked == NO) { //If checkbox didnt get a default check
       [self radioControlDidChangeValueOnDefault:cell.checkBox withIndexPath:indexPath]; //Get him default check (doesnt work)
    }
    cell.wasChecked = YES; //Checkbox has had a default check
    
    [cell.checkBox changeSelectedUI:YES]; //Change checkbox image (check or empty)
    
    cell.checkBox.data.selected = cartItem.selectedRaw; //?????????????
 
    cell.checkBox.backgroundColor = [UIColor whiteColor];
    
    //Actions
    
    [cell.checkBox addTarget:self action:@selector(radioControlDidChangeValue:) forControlEvents:UIControlEventValueChanged];
    
    [cell.minButton addTarget:self action:@selector(minuButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    
    [cell.plusButton addTarget:self action:@selector(plusButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    
    [cell setTarget:self actionForImageView:@selector(cellImagePressed:)];
    
    [cell.relatedButton addTarget:self action:@selector(showRelatedProdutcs:) forControlEvents:UIControlEventTouchUpInside];
 
    //Images
 
    UIImage *image = [[UIImage alloc] initWithContentsOfFile:[SAVE_PATH stringByAppendingPathComponent:pr.imagePath]];
 
    if (!image) {
        if (pr.imagePath) {
            NSString *imageName = [[pr.imagePath lastPathComponent] stringByDeletingPathExtension];
            NSString *imageType = [pr.imagePath pathExtension];
            NSString *bundlePath = [[NSBundle mainBundle] pathForResource:imageName ofType:imageType];
            if (bundlePath != nil) {
                NSURL *preloadImageURL = [NSURL fileURLWithPath:bundlePath];
                image = [[UIImage alloc] initWithContentsOfFile:preloadImageURL.path];
            }
        }
    }
 
    if (!image) {
        image = [UIImage imageNamed:@"productImageTemplate.jpg"];
    }
 
    cell.productImageView.image = image;
 
    cell.rightButtons = @[[MGSwipeButton buttonWithTitle:NSLocalizedString(@"Delete", nil) backgroundColor:[UIColor redColor]]];
    cell.rightSwipeSettings.transition = MGSwipeTransitionStatic;
    cell.delegate = self;
 
    return cell;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru