亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發教程之微博“更多”頁面

2019-10-21 18:57:55
字體:
來源:轉載
供稿:網友
本文是IOS開發教程系列文章第五篇,主要講訴了,如何制作微博的更多頁面,并附上效果圖及源碼,需要的朋友可以參考下,希望能有所幫助
 

最終效果圖:

iOS開發教程之微博“更多”頁面
 

MoreViewController.m

//// MoreViewController.m// 20_帥哥no微博//// Created by beyond on 14-8-4.// Copyright (c) 2014年 com.beyond. All rights reserved.//#import "MoreViewController.h"@interface MoreViewController (){  // more.plist根是字典,有兩對Key Value,其中有一對是zh_CN,對應的值是數組,數組的長度就是有多少個分組,數組的每一個元素也是一個數組,    // 由不同的分組,組成的數組  NSArray *_groups;}@end@implementation MoreViewController- (void)viewDidLoad{  [super viewDidLoad];  log(@"view %@",NSStringFromCGRect(self.view.frame)) ;    // 1.設置導航條上面 右邊的設置按鈕  [self setRightBarButtonItem];    // 2.加載more.plist  [self loadPlistOfMore];    // 3.設置tableView的全局背景  [self setTableViewGlobalBg];  // 4.添加 退出按鈕 到tableView的最底部的TableFooterView  [self addEixtBtnAtBottom];}// 1,設置導航條上面 右邊的按鈕- (void)setRightBarButtonItem{  self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"設置" style:UIBarButtonItemStylePlain target:self action:@selector(settings)];}// 2,加載more.plist文件- (void)loadPlistOfMore{  NSURL *url = [[NSBundle mainBundle] URLForResource:@"more" withExtension:@"plist"];  // 由一個個分組 組成的數組,分組的成員也就是數組,則一行行組成的數組  _groups = [NSDictionary dictionaryWithContentsOfURL:url][@"zh_CN"];}// 3,設置tableView的全局背景- (void)setTableViewGlobalBg{  // 清除ios 7 中tableView頂部的多出的空白區域  self.automaticallyAdjustsScrollViewInsets = NO;  // 設置scrollView額外的滾動區域//  self.tableView.contentInset = UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)  // 重要~ ~當tableview的樣式為group時,如果想更換背景,必須先清除條紋狀的自帶的backgroundView,然后才可以設置tableView的背景顏色  self.tableView.backgroundView = nil;  self.tableView.backgroundColor = kGlobalBg;    // 縮小每一分組之間的間距  self.tableView.sectionHeaderHeight = 0;  self.tableView.sectionFooterHeight = 5;}// 4,創建退出按鈕 并添加到tableView的最底部的TableFooterView- (void)addEixtBtnAtBottom{  // 1,創建一個footerView,將它作為tableView的TableFooterView  UIView *footerView = [[UIView alloc] init];  // tableView的TableFooterView的寬度固定是320,只有高度可調節  footerView.frame = CGRectMake(0, 0, 320, 60);  // 將剛才創建的footerView作為tableView的TableFooterView,目的是防止用戶點擊底部dockItem時不小心點到了退出按鈕,因此要設置一個額外的空間,補充一下TableFooterView的寬度固定是320  self.tableView.tableFooterView = footerView;      // 2,創建退出按鈕 并添加到tableView的最底部的TableFooterView  UIButton *btnExit = [UIButton buttonWithType:UIButtonTypeCustom];  // footerView是作為tableView的TableFooterView存在,按鈕是加到了footerView里面,這兒按鈕的frame x 10 y 5是相對于footerView的  btnExit.frame = CGRectMake(10, 5, 300, 40);  // 按鈕上字體大小  btnExit.titleLabel.font = [UIFont systemFontOfSize:17];  // 按鈕的監聽點擊事件  [btnExit addTarget:self action:@selector(exitBtnClick) forControlEvents:UIControlEventTouchUpInside];    // 分類方法,設置按鈕正常和高亮時背景圖片(可拉伸)  [btnExit setBtnBgImgForNormalAndHighightedWithName:@"common_button_red.png"];  // 設置按鈕上的文字,最后一組,數組只有一行,每一行就是一個字典  NSString *btnTitle = [_groups lastObject][0][@"name"];  [btnExit setTitle:btnTitle forState:UIControlStateNormal];        // 3,最重要的一步,將剛才創建的 退出按鈕 添加到tableView的TableFooterView  //[footerView addSubview:btnExit];  [self.tableView.tableFooterView addSubview:btnExit];}// 響應點擊設置點擊事件- (void)settings{  log(@"點擊了設置按鈕");}// 點擊 退出按鈕- (void)exitBtnClick{  // cancelButtonTitle 黑色  // destructiveButtonTitle 紅色  // otherButtonTitles 灰白色  UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"確定退出此賬號?" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"紅色" otherButtonTitles:@"其他", nil];    // UIActionSheet最好是顯示到Window上面,這樣就不怕點不中了,因為有時候控制器的view不一定占整個窗口大小  [actionSheet showInView:self.view.window];}// 點擊 設置按鈕- (void)setting{  log(@"設置");}// 代理方法,點擊了某行時調用- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  [tableView deselectRowAtIndexPath:indexPath animated:YES];}#pragma mark - 數據源方法// 共有多少組 最后一個組是特別的退出按鈕,故不進入循環使用- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{  return _groups.count - 1;}// 每一組的行數- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{  // 取得由每一行組成的數組  NSArray *rows = _groups[section];  // 返回該組的行數  return rows.count;}// 每一組的每一行顯示特有的內容- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{  static NSString *cellID = @"beyond";  // 1.先獲得池中的cell  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];  // 如果為空,才創建新的  if (cell == nil) {    // 創建新的cell    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];    // 1.1.清除文本標簽的背景    cell.textLabel.backgroundColor = [UIColor clearColor];    // 1.2.設置文本標簽高亮時的文字顏色同樣為默認的文字顏色 (不讓它變色)    cell.textLabel.highlightedTextColor = cell.textLabel.textColor;        // 1.3.重點,創建時就,初始化cell的背景view和選中時的背景view    UIImageView *bgImgView = [[UIImageView alloc] init];    cell.backgroundView = bgImgView;        UIImageView *selectedBgImgView = [[UIImageView alloc] init];    cell.selectedBackgroundView = selectedBgImgView;  }  // 2.設置cell獨一無二的內容  // 設置顯示的標題文字 第幾組-->第幾行--->字典  cell.textLabel.text = _groups[indexPath.section][indexPath.row][@"name"];    // 3.設置cell的背景圖片  // 先取出cell背景view  UIImageView *bgImgView = (UIImageView *)cell.backgroundView;  UIImageView *selectedBgImgView = (UIImageView *)cell.selectedBackgroundView;    // 分情況得出cell的背景圖片文件名  // 該組中,由每一行組成的數組  NSArray *rows = _groups[indexPath.section];  // 得到該組的,總行數  int rowNum = rows.count;  NSString *name = nil;    if (rowNum == 1) {    // 如果所在組只有一行,使用四角全是半角的圖片    name = @"common_card_background.png";  } else if (indexPath.row == 0) {    // 如果所在組不只一行,且當前行是所在組的第一行,使用上半為圓角的圖片    name = @"common_card_top_background.png";  } else if (indexPath.row == rowNum - 1) {    // 如果所在組不只一行,且當前行是所在組的最后一行,使用下半為圓角的圖片    name = @"common_card_bottom_background.png";  } else { // 中間    // 如果所在組不只一行,且當前行不在組的第一行也不在組的最后一行,使用四周無圓角的圖片    name = @"common_card_middle_background.png";  }    // 設置cell的正常和選中時的背景圖片  bgImgView.image = [UIImage imageStretchedWithName:name];  selectedBgImgView.image = [UIImage imageStretchedWithName:[name fileNameInsertSuffixBeforeExtension:@"_highlighted"]];    // 4.設置最右邊的箭頭指示器,分文字和圖片兩種情況討論  if (indexPath.section == 2) {    // 如果是第2組 ,則顯示文字,"閱讀模式 - 主題"    UILabel *label = [[UILabel alloc] init];    // 清除標簽背景色    label.backgroundColor = [UIColor clearColor];    // 標簽文字大小    label.font = [UIFont systemFontOfSize:13];    // 標簽文字顏色    label.textColor = [UIColor grayColor];    // 標簽文字靠右    label.textAlignment = NSTextAlignmentRight;    // 標簽frame的寬高    label.bounds = CGRectMake(0, 0, 100, 30);    // 該組的第1行顯示 "有圖模式" ,第2行顯示 "經典主題"    label.text = (indexPath.row == 0) ? @"有圖模式" : @"經典主題";    // 最后將自定義最右邊的view設置為cell的附屬view    cell.accessoryView = label;  } else {    // 如果是其他的組,顯示向右的圖片箭頭    cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"common_icon_arrow.png"]];  }  // 5.返回cell  return cell;}@end

『更多』頁面的數據來源more.plist

iOS開發教程之微博“更多”頁面



注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本91av在线播放| 国产精品久在线观看| 26uuu另类亚洲欧美日本一| 亚洲欧美一区二区激情| 久久精品中文字幕| 中文字幕精品网| 精品久久久久久久久国产字幕| 中文字幕欧美日韩在线| 亚洲人成电影网站色| 91美女片黄在线观| 一区二区中文字幕| 国产原创欧美精品| 亚洲成色777777女色窝| 2019中文字幕在线| 亚洲精品视频网上网址在线观看| 国产精品老牛影院在线观看| 欧美二区在线播放| 亚洲综合自拍一区| 清纯唯美亚洲综合| 亚洲精品美女久久久久| 国产91露脸中文字幕在线| 日韩一区二区三区在线播放| 成人免费视频在线观看超级碰| 亚洲精品日韩av| 国产丝袜高跟一区| 精品久久久国产| 久久偷看各类女兵18女厕嘘嘘| 中文国产亚洲喷潮| 成人免费激情视频| 亚洲国产成人精品一区二区| 日韩成人中文电影| 尤物精品国产第一福利三区| 亚洲欧美国产一区二区三区| 欧美理论电影网| 久久精品91久久香蕉加勒比| 日韩国产高清污视频在线观看| 97人洗澡人人免费公开视频碰碰碰| 久久天堂av综合合色| 色哟哟网站入口亚洲精品| 亚洲片国产一区一级在线观看| 福利精品视频在线| 欧美性jizz18性欧美| 久热精品视频在线观看一区| 91在线视频免费| 成人信息集中地欧美| 91麻豆国产精品| 欧美—级高清免费播放| 6080yy精品一区二区三区| 国产精品久久久久不卡| 91免费看片网站| 久久精品一本久久99精品| 国色天香2019中文字幕在线观看| 亚洲人成电影在线观看天堂色| 国产精品久久久久久亚洲调教| 日韩国产精品视频| 午夜精品蜜臀一区二区三区免费| 国产婷婷97碰碰久久人人蜜臀| 日韩久久精品电影| 亚洲精品视频在线播放| 亚洲男人第一av网站| 国产999精品久久久影片官网| 欧美肥婆姓交大片| 成人午夜一级二级三级| 亚洲精品一区中文字幕乱码| 久久免费视频网站| 不卡中文字幕av| 国产精品视频免费在线| 亚洲成人精品视频| 日韩精品小视频| 国产精品一区二区性色av| 亚洲在线www| 国内精品久久久久久中文字幕| 视频在线观看一区二区| 日韩在线不卡视频| 欧美精品videos另类日本| 精品中文字幕在线2019| 国产一区二区三区网站| 国产精品一二三视频| 欧美大片va欧美在线播放| 成人444kkkk在线观看| 97热精品视频官网| 色在人av网站天堂精品| 久久久成人av| 欧美巨乳在线观看| 国产精自产拍久久久久久蜜| 中文字幕精品影院| 国产精品视频中文字幕91| 久久久精品免费视频| 日韩极品精品视频免费观看| 国产成人精品国内自产拍免费看| 久久久噜噜噜久久中文字免| 久久色免费在线视频| 国产专区精品视频| 国产精品视频在线播放| 亚洲成年人影院在线| 国产精品久久久久久久久久尿| 久久精品国产久精国产一老狼| 国产香蕉精品视频一区二区三区| 国产精品久久久久秋霞鲁丝| www.美女亚洲精品| xvideos国产精品| 91精品在线国产| 亚洲综合色av| 亚洲欧美变态国产另类| 日本a级片电影一区二区| 成人妇女免费播放久久久| 国产一区在线播放| 国产成人精品视| 欧美视频一区二区三区…| 日本精品免费一区二区三区| 亚洲午夜国产成人av电影男同| 日韩美女主播视频| 亚洲精品一区二区三区不| 精品国内产的精品视频在线观看| 欧美在线观看网站| 欧美天天综合色影久久精品| 色狠狠av一区二区三区香蕉蜜桃| 日韩av中文字幕在线免费观看| 亚洲在线免费视频| 日韩精品免费看| 日本一区二区三区在线播放| 亚洲第一国产精品| 性夜试看影院91社区| 在线观看欧美日韩国产| 欧美大片在线看| 国产成人免费91av在线| 亚洲www永久成人夜色| 久久久精品视频成人| 亚洲人成伊人成综合网久久久| 日本午夜精品理论片a级appf发布| 欧美天天综合色影久久精品| 国产一区二区三区丝袜| 亚洲欧美精品中文字幕在线| 亚洲精品电影网在线观看| 精品国偷自产在线| 欧美日韩在线视频一区| 久久精品亚洲94久久精品| 欧美成人午夜剧场免费观看| 亚洲高清一区二| 国产一区二区三区三区在线观看| 久久久精品久久久久| 亚洲xxxx在线| 成人免费视频xnxx.com| 欧美日韩国产在线播放| 欧美伦理91i| 亚洲精品一区二区在线| 欧美疯狂做受xxxx高潮| 欧美高清视频免费观看| 久久国产精品免费视频| 日韩av日韩在线观看| 久久久久久久999精品视频| 国产日韩在线看片| 91久久国产综合久久91精品网站| 亚洲美女黄色片| 午夜精品国产精品大乳美女| 成人国产精品久久久| 亚洲国产成人一区| 国产欧亚日韩视频| 国产精品狼人色视频一区| 久久人人爽人人爽人人片av高清| 精品视频偷偷看在线观看| 欧美另类极品videosbestfree| 91大神福利视频在线| 91视频国产一区|