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

Раскрывающаяся таблица - Программирование iOS/iPhone

Восстановить пароль Регистрация
Другие темы раздела
Программирование iOS/iPhone Копирование файлов из песочницы в iCloud http://www.cyberforum.ru/ios-dev/thread1139756.html
Доброе время суток. Может кто знает как перебросить файлы из sandbox в iCloud. Регистрирую наблюдатель за "облачным" каталогом metadataQueryICloud = init]; ]; ];
Программирование iOS/iPhone Каким образом сдвигать контент вверх при отображении клавиатуры? Доброго времени суток всем. Ребята подскажите как решить такую проблему имеется внизу экрана TextField или TextView так вот когда становлюсь в них - клавиатура выскакивает и закрывает их. Каким образом весь контент смещать вверх над клавиатурой? Ткните носом в нужный источник и желательно с примером. Заранее всем откликнувшимся спасибо. http://www.cyberforum.ru/ios-dev/thread1138846.html
Авторское право на название и идею Программирование iOS/iPhone
Здравствуйте! Готовлюсь к созданию простенькой игрушки и выкладыванию ее в Appstore, и вот возник вопрос: игра типа игры "жизнь"(к примеру),которая на игровых автоматах появилась еще(давным-давно), и допустим выпустил я такую игрулю и назвал ее "Жизнь". Могут ли "злые дядьки" "по судам затаскать" за нарушение авторского права (Название игры и идея). Насколько я знаю, авторское право не...
Программирование iOS/iPhone Как сохранять данные в plist?
Парни всем доброго времени суток. Я еще пока нуб в айос программировании, в связи с этим у меня возникло несколько вопросов так как встала передо мной задача 1. Мне нужно сохранять данные о котах локально в plist файле, а именно - название породы - краткое описание - изображение кота как организовать формат хранения данных, что нужно NSDictionary или NSArray достаточно? я...
Программирование iOS/iPhone Как я регистрировал Apple Developer в Украине http://www.cyberforum.ru/ios-dev/thread1136131.html
Всем доброго дня! Надеюсь, модераторы не посчитают эту тему рекламой банка (а если посчитают - пусть вырежут упоминание) )) Через n-ное количество времени после того, как я занялся iOS-разработкой, появилась необходимость открыть собственный аккаунт разработчика. В интернете я начитался много ужасов - про то, что надо отправлять факсы, что карточку надо очень конкретную иметь (причем, свой...
Программирование iOS/iPhone NSKeydArchiver Здравсвуйте, пытаюсь разобраться в сохранении данных приложения. У меня есть кастомный объект. // @interface CellObject : NSObject <NSCoding> @property (nonatomic, strong) NSString *links; @property (nonatomic, strong) NSString *title; @property (assign) BOOL isFavorite; @end подробнее

Показать сообщение отдельно
Alex2301
-21 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 33
07.04.2014, 11:35     Раскрывающаяся таблица
Здравсвуйте, нужно сделать раскрывающуюся таблицу как здесь: http://www.imaladec.com/story/dropdowntable
Пробовал делать по примеру, но ничего не вышло. Подскажите что я делаю не так. Закрытие я делаю в методе - (void)didSelectSectionUIButton*)sender

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
//
//  ViewController.m
//  RSSReader
//
//  Created by admin on 3/25/14.
//  Copyright (c) 2014 admin. All rights reserved.
//
 
#import "ViewController.h"
#import "WebViewController.h"
#import "InternetGateway.h"
#import "Item.h"
#import "AFNetworking.h"
#import "CustomCell.h"
#import "SettingsViewController.h"
 
#define RssFilePath    PathForXMLResource(@"0")
 
@interface ViewController ()
 
@end
 
@implementation ViewController
@synthesize mainTV, item,secArray, titleArray;
 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
         self.title = @"News";
    }
    return self;
}
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    secArray = [[NSMutableArray alloc] init];
    titleArray = [[NSMutableArray alloc] init];
    mainTV = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
    [mainTV setAutoresizesSubviews:YES];
    [mainTV setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
    [mainTV setDataSource:self];
    [mainTV setDelegate:self];
    [mainTV setBackgroundColor:[UIColor grayColor]];
    [self.view addSubview:mainTV];
    InternetGateway *internetGateway = [[InternetGateway alloc] init];
     SectionTableView *secTV = [[SectionTableView alloc] init];
    [internetGateway getFeedsForUrl:item.link
                            success:^(id responseObject)
     {
         _items=responseObject;
         [titleArray addObject:_items.lastObject];
         [_items removeLastObject];
        [secArray addObject:_items];
         secTV.isOpen = YES;
         [self.mainTV reloadData];
     }
                            failure:^(NSError *error)
     {
         [_items removeAllObjects];
         [self.mainTV reloadData];
     }];
    
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
    [self.mainTV addSubview:refreshControl];
}
 
 
 
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//     NSLog(@"LOOOOOOOGGG= %lu", (unsigned long)self.secArray.count);
    return self.secArray.count;
   
}
 
 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}
 
 
 
- (void)refresh:(id) sender {
    
    [titleArray removeAllObjects];
    [secArray removeAllObjects];
    SectionTableView *secTV = [[SectionTableView alloc] init];
    InternetGateway *internetGateway = [[InternetGateway alloc] init];
    [internetGateway getFeedsForUrl:item.link
                            success:^(id responseObject)
     {
         _items=responseObject;
         [titleArray addObject:_items.lastObject];
         [_items removeLastObject];
         [secArray addObject:_items];
         secTV.isOpen = YES;
         [self.mainTV reloadData];
     }
                            failure:^(NSError *error)
     {
         [_items removeAllObjects];
         [self.mainTV reloadData];
     }];
    
    
[(UIRefreshControl *)sender endRefreshing];
 
}
 
 
- (void)didSelectSection:(UIButton*)sender
{
    
    SectionTableView *secTV= [[SectionTableView alloc] init];
    secTV.ArrayWithItem = [self.secArray objectAtIndex:sender.tag];
    NSMutableArray *items = [[ NSMutableArray alloc] init];
    [items addObjectsFromArray:secTV.ArrayWithItem];
    NSMutableArray *indexPaths = [NSMutableArray array];
    for (int i=0; i<items.count; i++)
    {
        [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:sender.tag]];
    }
    if (secTV.isOpen==YES)
    {
        secTV.isOpen=NO;
        [self.mainTV deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationLeft];
    }
    else
    {
        secTV.isOpen=YES;
        [self.mainTV insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
    }
 
}
 
        
#pragma mark - Table data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSMutableArray *array = [self.secArray objectAtIndex:section];
//    NSLog(@"qwerty = %i", array.count);
    return array.count;
}
 
 
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
  
    
    NSMutableArray *qwerty = [self.secArray objectAtIndex:section];
 
    if (qwerty!=0)
    {
        SectionTableView*  myObj = [self.titleArray objectAtIndex:section];
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.tag = section;
        button.backgroundColor = [UIColor grayColor];
        
        [button setTitle:myObj.title forState:UIControlStateNormal];
        [button addTarget:self
                   action:@selector(didSelectSection:)
         forControlEvents:UIControlEventTouchUpInside];
        
        return button;
        [qwerty removeLastObject];
        
    }
    return 0;
 
    
    
    
    
//    NSMutableArray *currentSection = [self.secArray objectAtIndex:section];
////    NSString *sectionTitle = [currentSection objectForKey:@"title"];
////    BOOL isOpen = [[currentSection objectForKey:@"isOpen"] boolValue];
////    NSString *arrowNmae = isOpen? @"arrowUp":@"arrowDown";
//    
//    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//    button.frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f);
//    button.tag = section;
//    button.backgroundColor = [UIColor brownColor];
////    [button setTitle:sectionTitle forState:UIControlStateNormal];
//    [button addTarget:self action:@selector(didSelectSection:)
//     forControlEvents:UIControlEventTouchUpInside];
////    [button setImage:[UIImage imageNamed:arrowNmae] forState:UIControlStateNormal];
//    return button;
}
 
 
 
 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"Cell";
    CustomCell *cell = (CustomCell *)[mainTV dequeueReusableCellWithIdentifier:identifier];
    if ( !cell ) {
            cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
        [cell setAccessoryType:(UITableViewCellAccessoryDisclosureIndicator)];
    }
    [self configureCell:cell atIndexPath:indexPath];
    return cell;
}
 
- (void)configureCell:(CustomCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
//    item = self.items[indexPath.row];
  
    NSMutableArray *qwerty = [self.secArray objectAtIndex:indexPath.section];
//    NSMutableArray *buttonTitle = qwerty.lastObject;
//    [qwerty removeLastObject];
    item = qwerty[indexPath.row];
 
    
    cell.titleLabel.text = item.title;
    cell.titleLabel.font = [UIFont fontWithName:@"Helvetica" size:20.0];
    cell.titleLabel.textColor = [UIColor darkTextColor];
    
    cell.descriptionLabel.text = item.shortDesc;
    cell.descriptionLabel.font = [UIFont fontWithName:@"Helvetica" size:12.0];
    cell.descriptionLabel.textColor = [UIColor lightGrayColor];
}
 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 120;
}
 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    item = [self.items objectAtIndex:indexPath.row];
    WebViewController *webVC = [[WebViewController alloc] init];
    webVC.requestURL = item.link;
    [self.navigationController pushViewController:webVC animated:YES];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
 
 
@end

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//
//  SectionTableView.h
//  RSSReader
//
//  Created by admin on 4/4/14.
//  Copyright (c) 2014 admin. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
@interface SectionTableView : NSObject
 
@property (strong, nonatomic) NSString *title;
@property (strong, nonatomic) NSMutableArray *ArrayWithItem;
@property (assign) BOOL isOpen;
 
@end

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#import "InternetGateway.h"
#import "Item.h"
#import "CellObject.h"
#import "SettingsViewController.h"
@implementation InternetGateway
@synthesize myItem, sections;
 
 
 
  - (id)initWithRssFile:(NSString *)rssFile
{
    self = [super init];
    if (self) {
        _rssFile = rssFile;
        
    }
    return self;
}
 
//@"http://stfw.ru/rss.php?m=pages"
 
 
- (void)getFeedsForUrl:(NSURL *)url
               success:(void (^)(id responseObject))success
               failure:(void (^)(NSError *error))failure
{
    
    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
    
    SettingsViewController *settingsVC = [[SettingsViewController alloc] initWithNibName:nil bundle:nil];
    [settingsVC viewDidLoad];
    for (CellObject *obj in settingsVC.rssObjectArray) {
        if (obj.isFavorite == YES) {
    
   
    AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:obj.links]];
    [client getPath:@"rss/" parameters:nil
            success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         NSString *rss = nil;
        
         if ([responseObject isKindOfClass:[NSData class]])
         {
             rss = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
         }
         else
         {
             [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
             rss = (NSString *)responseObject;
         }
         NSError *error = nil;
         DDXMLDocument *document = [[DDXMLDocument alloc] initWithXMLString:rss options:0 error:&error];
         if (error)
         {
             [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
         }
       
         NSArray *nodes = [document nodesForXPath:@"/rss/channel/item" error:&error];
         
         if (error)
         {
             [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
         }
         
         NSMutableArray *results = [[NSMutableArray alloc] init];
       
         for (DDXMLElement *currentArray in nodes)
         {
             Item *item = [self parseXMLNodeForItem:currentArray];
            
             [results addObject:item];
             
             [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
        }
             [results addObject:obj];
            success(results);
         }
     
        failure:^(AFHTTPRequestOperation *operation, NSError *error)
        {
         [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
         failure(error);
        }];
    
        }
    }
}
 
-(id)parseXMLNodeForItem:(DDXMLElement *)element
{
    NSMutableString *desc = [[NSMutableString alloc] initWithString:(NSString *)[[[element elementsForName:@"description"] lastObject] stringValue]];
    
    if (desc && [desc length]>0)
    {
        NSRange r;
            
        while ((r = [desc rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
        {
            [desc deleteCharactersInRange:r];
        }
    }
    
    NSString *title = [[[element elementsForName:@"title"] lastObject] stringValue];
    NSString *linkString = [[[element elementsForName:@"link"] lastObject] stringValue];
    NSString *shortDesc = desc;
    
    myItem = [[Item alloc] init];
    myItem.title = title;
    myItem.link = [NSURL URLWithString:linkString];
    myItem.shortDesc = shortDesc;
    
    return myItem;
}
 
@end
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru