1. 程式人生 > >用table分組寫設定介面

用table分組寫設定介面

#import "ViewController.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic,strong)UITableView *tableView ;
@property (nonatomic,strong)NSArray *dataArray ;

@property (nonatomic,strong) UIView *footView;

@end

@implementation ViewController

- (NSArray *)dataArray
{
    if (nil == _dataArray) {
        _dataArray = @[
                       @[@"個人資料",@"賬號繫結"],
                       @[@"收貨地址管理",@"實名認證管理",@"購物偏好設定"] ,
                       @[@"新訊息設定"],
                       @[@"修改密碼"],
                       @[@"清理快取",@"關於聚美",@"日誌上傳"],
                       ];
    }
    
    return _dataArray ;
}

-(UIView *)footView{
    if (_footView == nil) {
        _footView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,0,self.view.frame.size.height*0.3)];
        _footView.backgroundColor = [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0];
        
    }
    
    return _footView;
}

#pragma mark - getter/setter
- (UITableView *)tableView
{
    if (nil == _tableView) {
        _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 70, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStyleGrouped];
        //_tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
        //_tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cellID"];
        _tableView.dataSource = self ;
        _tableView.delegate = self ;
        _tableView.showsVerticalScrollIndicator=NO;//關閉上下滑動時的滑條
        self.tableView.tableFooterView = self.footView;
    }
    
    return _tableView ;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor=[UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0];
    
    UIView *theView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 70)];
    theView.backgroundColor=[UIColor whiteColor];
    [self.view addSubview:theView];
    
    UILabel *theLabel=[[UILabel alloc] initWithFrame:CGRectMake(self.view.frame.size.width/4, 30, self.view.frame.size.width/2, 40)];
   

[email protected]"設定";
    theLabel.textAlignment=NSTextAlignmentCenter;
    theLabel.font=[UIFont systemFontOfSize:5+self.view.frame.size.width/30];
    [theView addSubview:theLabel];
    
    
    NSLog(@"viewDidLoad");
    
    [self.view addSubview:self.tableView] ;
    
    UIButton *footButton=[[UIButton alloc] initWithFrame:CGRectMake(self.view.frame.size.width/5, self.view.frame.size.height/25, self.view.frame.size.width*3/5, 16+self.view.frame.size.height/32)];
    footButton.backgroundColor=[UIColor whiteColor];
    [footButton setTitle:@"退出登入" forState:UIControlStateNormal];
    [footButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [footButton addTarget:self action:@selector(footButtonClick) forControlEvents:UIControlEventTouchUpInside];
    footButton.titleLabel.font=[UIFont systemFontOfSize:5+self.view.frame.size.width/45];
    //切圓角和設定弧度
    footButton.layer.cornerRadius = footButton.frame.size.height/2;//半徑大小
    footButton.layer.masksToBounds = YES;//是否切割
    [self.footView addSubview:footButton];
    
    // Do any additional setup after loading the view, typically from a nib.
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.dataArray.count ;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.dataArray[section] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     self.tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellID" forIndexPath:indexPath];
    cell.textLabel.textColor = [UIColor blackColor];
    cell.textLabel.text = self.dataArray[indexPath.section][indexPath.row];
    cell.textLabel.font=[UIFont systemFontOfSize:5+self.view.frame.size.width/45];
    
    cell.selectionStyle = UITableViewCellSelectionStyleNone;//點選cell時,cell的顏色不改變
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;//每個cell的後面出現>
    
    
    return cell ;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    return 20+self.view.frame.size.height/28;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    NSString *theStr;
    
    switch (indexPath.section) {
        case 0:
            
            if (indexPath.row==0) {
                NSLog(@"點選了個人資料");
                [email protected]"個人資料";
            } else if (indexPath.row==1) {
                NSLog(@"賬號繫結");
                [email protected]"賬號繫結";
            }
            
            break ;
        case 1:
            
            if (indexPath.row==0) {
                NSLog(@"點選了收貨地址管理");
                [email protected]"收貨地址管理";
            } else if (indexPath.row==1) {
                NSLog(@"點選了實名認證管理");
                [email protected]"實名認證管理";
            } else if (indexPath.row==2) {
                NSLog(@"點選了購物偏好設定");
                [email protected]"購物偏好設定";
            }
            
            break ;
        case 2:
            
            if (indexPath.row==0) {
                NSLog(@"點選了新訊息設定");
                [email protected]"新訊息設定";
            }
            
            break ;
        case 3:
            
            if (indexPath.row==0) {
                NSLog(@"點選了修改密碼");
                [email protected]"修改密碼";
            }
            
            break ;
        case 4:
            
            if (indexPath.row==0) {
                NSLog(@"點選了清理快取");
                [email protected]"清理快取";
            } else if (indexPath.row==1) {
                NSLog(@"點選了關於聚美");
                [email protected]"關於聚美";
            } else if (indexPath.row==2) {
                NSLog(@"點選了日誌上傳");
                [email protected]"日誌上傳";
            }
            
            break ;
        default: break;
    }
    
    
    dispatch_async(dispatch_get_main_queue(), ^{
        
        UILabel *theLabel=[[UILabel alloc] initWithFrame:CGRectMake((self.view.frame.size.width-self.view.frame.size.width/3)/2, self.view.frame.size.height/2, self.view.frame.size.width/3, 20+self.view.frame.size.height/35)];
        theLabel.backgroundColor=[UIColor blackColor];
        theLabel.layer.cornerRadius = theLabel.frame.size.height/7;
        theLabel.clipsToBounds = YES;
        theLabel.textColor=[UIColor whiteColor];
        theLabel.alpha=0.8f;
        theLabel.textAlignment=NSTextAlignmentCenter;
        theLabel.font=[UIFont systemFontOfSize:5+self.view.frame.size.width/40];
        theLabel.text=theStr;
        [self.view addSubview:theLabel];
        
        //設定動畫
        CATransition *transion=[CATransition animation];
        [email protected]"push";//動畫方式
        [email protected]"fromTop";//設定動畫從哪個方向開始
        [theLabel.layer addAnimation:transion forKey:nil];//給layer新增動畫。設定延時效果
        //不佔用主執行緒
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(),^{
            
            [theLabel removeFromSuperview];
            
        });//這句話的意思是1.5秒後,把label移出檢視
    });
    
    
}

//下面是設定分組的頭部和底部間距

//section頭部間距
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    
    return self.view.frame.size.width/35;//section頭部高度
}

//section頭部檢視
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
    {
        //設定頭部顏色
        UIView *headerView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
        headerView.backgroundColor = [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0];
        
        return headerView ;
}

//section底部間距
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    
    return 0;//section底部高度
            
}

//section底部檢視- (UIView
//section底部檢視
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
            
    UIView *viewdd=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
    viewdd.backgroundColor = [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0];
    
    return viewdd;
}

-(void)footButtonClick
{
    NSLog(@"點選了退出登入按鈕");
    NSLog(@"ddd~~");
    
    dispatch_async(dispatch_get_main_queue(), ^{
        
        UILabel *theLabel=[[UILabel alloc] initWithFrame:CGRectMake((self.view.frame.size.width-self.view.frame.size.width/3)/2, self.view.frame.size.height/2, self.view.frame.size.width/3, 20+self.view.frame.size.height/35)];
        theLabel.backgroundColor=[UIColor blackColor];
        theLabel.layer.cornerRadius = theLabel.frame.size.height/7;
        theLabel.clipsToBounds = YES;
        theLabel.textColor=[UIColor whiteColor];
        theLabel.alpha=0.8f;
        theLabel.textAlignment=NSTextAlignmentCenter;
        theLabel.font=[UIFont systemFontOfSize:5+self.view.frame.size.width/40];
        [email protected]"退出登入";
        [self.view addSubview:theLabel];
        
        //設定動畫
        CATransition *transion=[CATransition animation];
        [email protected]"push";//動畫方式
        [email protected]"fromTop";//設定動畫從哪個方向開始
        [theLabel.layer addAnimation:transion forKey:nil];//給layer新增動畫。設定延時效果
        //不佔用主執行緒
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(),^{
            
            [theLabel removeFromSuperview];
            
        });//這句話的意思是1.5秒後,把label移出檢視
    });
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 

@end

相關推薦

table分組設定介面

#import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> @property (nonatomic,strong)UIT

python進階-Tkinter/mysqldb一個簡單的酒店預定GUI介面

學了python的部分庫和基本語法後,結合資料庫操作,做一個簡單的使用者友好介面實現一個簡單的酒店預訂小系統。 準備姿勢 tkinter的元件轉換 tkinter按鈕元件詳解 Python連線資料庫操作 資料庫準備 在本地資料庫新建一個hotel_data的資料庫,建立四張表。

node資料介面,除錯,跨域,express中介軟體

進入服務端專案目錄下:1、npm init 建立package.json檔案;2、建立一個app.js檔案,下面的標註都有了,簡單的寫了一個介面,下面會用,對跨域訪問做了設定---------------------------------------------------

markdown編輯器技術介面文件

一直想找一套開源程式來寫介面文件,看過showdoc,swagger之類的,感覺都不是很方便 ,後來發現還是用markdown寫技術介面文件比較方便! 寫md檔案推薦使用gitbook 下載地址 https://www.gitbook.com/editor/

node後臺介面 (後臺管理系統)

第一步 先下載express  - npm install express -S - 引入express  建立伺服器   const express = require('express') const app = express() app.listen(5000,

PyGObject筆記1——Python圖形介面

       Linux下最著名的圖形庫GTK+的較新版本GTK+不僅支援C語言,還綁定了多種語言,Python是其中繫結比較成熟的一種。        Python繫結GTK2為PyGTK,現在推薦使用繫結GTK3+的PyGObject替代PyGTK。       本篇開

dubbo框架的簡單的介面作為客戶端

在客戶端需要依賴服務端的jar包和類,在客戶端也新建和服務端一樣的介面和實現類 consumer.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sprin

MELMAYA介面

sphere -name "mysphere"; window mywindow; columnLayout; attrFieldSliderGrp -min 0 -max 10 -at "mysphere.sx"; showWindow mywindow; 這樣用出來就

SWT-designer 的使用者管理介面

本設計運用java語言編輯出基於swing的使用者管理介面,並與mysql連線,對資料進行增刪查改。新增:點選按鈕按鈕,跳出一個adddialog,並且可以通過絕對路徑手動載入圖片,顯示在label上;刪除:滑鼠右鍵彈出選單框可刪除介面和資料庫中資料。 1、登陸介面程

HTML和css介面適應手機介面小結

用html和css寫得頁面要適應各種手機螢幕的話,寫的時候要注意以下幾點: 整體頁面的寬度用百分之比表示,任意一個要設定寬度的元素都用百分比表示。比如在整體的上設 width:100%; 要適應各個

html之實戰二--table和form完成註冊介面

<html>     <head>         <meta charset="utf-8" />         <title>第二次實戰--用table和form做出一個漂亮的註冊頁面</title>   

python登陸介面

端午佳節,一邊吃粽子一邊寫登陸介面 #!/usr/bin/env python def login(username, password): f = open("db", 'r') # 讀檔

vetr.x一個HTTP介面介面卡, 對接各種形式介面

用vetr.x寫一個HTTP介面介面卡, 對接各種形式介面 專案地址:https://github.com/hjx601496320/transmit 業務說明 在日常開發工作中,我們經常會遇到要和各種第三方除錯介面的情況,如果是簡單的幾個介面還好,程式碼寫起來很快就寫好了。但是如果在某一種業務情況下,比如支

分針網——IT教育:js原生黑客帝國特效

想必大家都看過 黑客帝國 系列電影吧!先放一張圖片致敬一下經典。我們就來做一下裏面的背景特效吧:The Matrix

現在主流網站為什麽都div+css布局而不是table

樣式 style 證明 引擎 實驗 加載 網站 效果 視覺 由於剛剛接觸前端,一直覺得table布局在代碼上看起來比div+css更整潔,div+css布局的頁面,一堆的<div><div><div>...</div><

NPOIWorkbookFactory讀 2007以上格式文件(xlsx)

輸出 最新 壓縮工具 mode 新的 mod 發現 eno 讀寫 //我用的最新的2.2.1版本 //第一步:引用DLL,5個全導入,包括ICSHARP.ZIP,是個開源壓縮工具包。XLSX是壓縮格式,需要它來解壓 //第二部: using NPOI.SS.UserMode

html語言一個功課表

ble mage ima http jsb type 聲明 mil .net 今天在網上看了一個關於html的教程,主要是講表格,看完之後認為有必要上機試試。於是就寫了以下的一段代碼。 <!DOCTYPE html><!--貌似5.0的能

table繪制 等寬等間距的單元

ack log height alt show span bsp 可能 技術 css:         .test1 { empty-cells: show;/*show:指定當表格的單元格無內容時,顯示該單元格的邊框。*/

java小程序-----if for會員登陸和商品列表

object span scanner 程序 out 筆記 bre welcome sys 一、父類 1 public class Father{ //父類 2 3 protected static i

偽元素移動端1px邊框時想實現邊角效果

ack img ive cal left image event 發現 邊框 做移動端頁面時,又想用偽元素做真實1像素邊框,又想有邊角時,會發現只加一個border-radius時出來的效果邊款並沒有變成圓角,解決辦法是加兩個border-radius <div c