NewsViewController.m 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. //
  2. // NewsViewController.m
  3. // Apex Mobile
  4. //
  5. // Created by Ray on 14-4-18.
  6. // Copyright (c) 2014年 United Software Applications, Inc. All rights reserved.
  7. //
  8. #import "NewsViewController.h"
  9. #import "NewsDetailViewController.h"
  10. @interface NewsViewController ()
  11. @end
  12. @implementation NewsViewController
  13. - (BOOL)shouldAutorotate
  14. {
  15. return YES;
  16. }
  17. - (NSUInteger)supportedInterfaceOrientations
  18. {
  19. return UIInterfaceOrientationMaskPortrait;
  20. }
  21. - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
  22. {
  23. return UIInterfaceOrientationPortrait;
  24. }
  25. -(void) loadpage
  26. {
  27. // [self.params setValue:[NSString stringWithFormat:@"%ld",self.offset] forKey:@"offset"];
  28. self.mum.center = self.view.center;
  29. self.btnrefresh.enabled = false;
  30. //
  31. // NSTimeInterval animationDuration = 0.30f;
  32. // [UIView beginAnimations:@"ResizeView" context:nil];
  33. // [UIView setAnimationDuration:animationDuration];
  34. // self.prepageButton.enabled=false;
  35. // self.nextpageButton.enabled=false;
  36. // self.mum.hidden = false;
  37. // self.grid.hidden = true;
  38. // self.mum.hidden = false;
  39. // self.tableview.hidden = true;
  40. // [UIView commitAnimations];
  41. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  42. NSData* data=nil;
  43. if([self.module_name isEqualToString:@"Announcements"])
  44. data=[ApexMobileNetwork get_announcements:self.lastid limit:self.limit];
  45. else
  46. data=[ApexMobileNetwork get_marketnews:self.lastid limit:self.limit];
  47. dispatch_async(dispatch_get_main_queue(), ^{
  48. self.tableview.hidden =false;
  49. self.mum.hidden = true;
  50. if(data != nil)
  51. {
  52. [self.data appenddata: data];
  53. self.lastid = self.data._id;
  54. self.btnrefresh.hidden = false;
  55. if(self.data.finishload==true)
  56. {
  57. int i =self.btnrefresh.state;
  58. self.btnrefresh.titleLabel.text =NSLocalizedString(@"no_more",nil);
  59. // [self.btnrefresh setTitle:@"No more" forState:UIControlStateNormal];
  60. }
  61. else
  62. {
  63. self.btnrefresh.enabled = true;
  64. self.btnrefresh.titleLabel.text =NSLocalizedString(@"load_more",nil);
  65. // [self.btnrefresh setTitle:@"Load more" forState:UIControlStateNormal];
  66. }
  67. [self.tableview reloadData ];
  68. }
  69. else
  70. {
  71. self.btnrefresh.enabled = true;
  72. [self.btnrefresh setTitle:@"Load more" forState:UIControlStateNormal];
  73. }
  74. });
  75. });
  76. }
  77. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  78. {
  79. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  80. if (self) {
  81. self.data = [[NewsData alloc]init];
  82. // Custom initialization
  83. }
  84. return self;
  85. }
  86. -(id) init :(NSString*) module_name
  87. {
  88. self = [super init];
  89. if(self)
  90. {
  91. self.module_name = module_name;
  92. self.data = [[NewsData alloc]init];
  93. }
  94. return self;
  95. }
  96. - (void)viewDidLoad
  97. {
  98. [super viewDidLoad];
  99. self.navigationItem.title = self.module_name;
  100. self.limit = 10;
  101. self.data = [[NewsData alloc] init:self.limit];
  102. self.btnrefresh = [UIButton buttonWithType:UIButtonTypeCustom];
  103. // self.btnrefresh.titleLabel.text =@"Load more";
  104. [self.btnrefresh setTitle:@"Load more" forState:UIControlStateNormal];
  105. self.btnrefresh.titleLabel.adjustsFontSizeToFitWidth = YES;
  106. // [self.btnrefresh.titleLabel sizeToFit];
  107. self.btnrefresh.hidden = true;
  108. [self.btnrefresh setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  109. self.btnrefresh.backgroundColor = [UIColor lightGrayColor];
  110. [self.btnrefresh addTarget:self action:@selector(loadmore) forControlEvents:UIControlEventTouchUpInside];
  111. self.btnrefresh.frame =CGRectMake(0.0f, 0.0f, self.tableview.bounds.size.width, 44.0f);
  112. self.tableview.tableFooterView = self.btnrefresh;//tableFooterView;
  113. [self loadpage];
  114. }
  115. - (void)loadmore
  116. {
  117. self.btnrefresh.enabled = NO;
  118. self.btnrefresh.titleLabel.text =@"Loading...";
  119. // [self.btnrefresh setTitle:@"Loading..." forState:UIControlStateNormal];
  120. [self loadpage];
  121. // [SVProgressHUD showWithStatus:@"加载中..."];
  122. // [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
  123. // double delayInSeconds = 1.5;
  124. // dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
  125. // dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
  126. // _rowCount += 5;
  127. // [self.tableView reloadData];
  128. // [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
  129. // [SVProgressHUD showSuccessWithStatus:@"加载完成"];
  130. // _bottomRefresh.frame = CGRectMake(0, 44+_rowCount*RCellHeight, 320, RCellHeight);
  131. // _bottomRefresh.enabled = YES;
  132. // });
  133. }
  134. - (void)didReceiveMemoryWarning
  135. {
  136. [super didReceiveMemoryWarning];
  137. // Dispose of any resources that can be recreated.
  138. }
  139. /*
  140. #pragma mark - Navigation
  141. // In a storyboard-based application, you will often want to do a little preparation before navigation
  142. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
  143. {
  144. // Get the new view controller using [segue destinationViewController].
  145. // Pass the selected object to the new view controller.
  146. }
  147. */
  148. //- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
  149. //{
  150. //// if(section==1)
  151. //// return 44;
  152. //// else
  153. // return 200;
  154. //}
  155. //- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
  156. //{
  157. //// tableView dequeueReusableHeaderFooterViewWithIdentifier:<#(NSString *)#>
  158. // UITableViewHeaderFooterView *view = [[UITableViewHeaderFooterView alloc]initWithFrame:CGRectMake(0, 0, 360, 44.0)];
  159. // view.backgroundColor = [UIColor redColor];
  160. //// UIView* footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 360, 44.0)];
  161. //// UIButton* btnNextPage = [[UIButton alloc] initWithFrame:footerView.frame];
  162. //// btnNextPage.titleLabel.text = NSLocalizedString(@"Load more", null);
  163. //// [footerView addSubview:btnNextPage];
  164. //// [view addSubview:footerView];
  165. // return view;
  166. //}
  167. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  168. {
  169. return 1;
  170. }
  171. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  172. {
  173. return [self.data get_count];
  174. }
  175. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  176. {
  177. DebugLog(@"cellForRowAtIndexPath");
  178. NSString *CellIdentifier = @"newsitem";
  179. NewsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
  180. NSString* title = [self.data.pagedata[indexPath.row] valueForKey:@"title"];
  181. NSString* content = [self.data.pagedata[indexPath.row] valueForKey:@"content"];
  182. NSString* base64img =[self.data.pagedata[indexPath.row] valueForKey:@"image"];
  183. if(base64img.length>0)
  184. {
  185. NSData *_decodedImageData = [[NSData alloc] initWithBase64EncodedString:base64img options:NSDataBase64DecodingIgnoreUnknownCharacters];
  186. cell.image.image = [UIImage imageWithData:_decodedImageData];
  187. }
  188. else
  189. {
  190. UIImage * img =[UIImage imageNamed:@"rect_market_news"];
  191. cell.image.image = img;
  192. }
  193. cell.title.text = title;
  194. [cell.title sizeToFit];
  195. cell.content.text =content;
  196. // cell.imageView.image = [UIImage imageNamed:[self.toolsinfo[indexPath.row] valueForKey:@"img"]];
  197. return cell;
  198. }
  199. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  200. {
  201. NewsDetailViewController *viewcontroller=[self.storyboard instantiateViewControllerWithIdentifier:@"NewsDetailViewController"];
  202. viewcontroller.title = [self.data.pagedata[indexPath.row] valueForKey:@"title"];;
  203. viewcontroller.url = [self.data.pagedata[indexPath.row] valueForKey:@"url"];;
  204. [self.navigationController pushViewController:viewcontroller animated:YES];
  205. // SearchViewController *searchViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SearchViewController"];
  206. // searchViewController.function_name = @"Download Document";
  207. // [self.navigationController pushViewController:searchViewController animated:YES];
  208. // return;
  209. // NSString* title = [self.toolsinfo[indexPath.row] valueForKey:@"title"];
  210. // if([title isEqualToString:@"Market news"])
  211. // {
  212. // NewsViewController *newsview=[[NewsViewController alloc] init:title ];
  213. // [self.navigationController pushViewController:newsview animated:YES];
  214. // }
  215. // else if([title isEqualToString:@"Announcements"])
  216. // {
  217. // NewsViewController *newsview=[[NewsViewController alloc] init:title ];
  218. // [self.navigationController pushViewController:newsview animated:YES];
  219. // }
  220. }
  221. @end