你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS-UITabView示例

IOS-UITabView示例

編輯:IOS開發綜合

總結

本章主要簡示了UITabView得使用方法,使用UITabViewController的三個頁面演示不同情況,包括簡單的表格,分段帶副標題風格的表格以及索引表格。

運行結果

\

工程構建概要

1.UITabViewController的使用方法可參考以前的文章<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cCBjbGFzcz0="p1">2.使用UITabView的控制類必須實現該控件對應的數據源和代理的方法,同時需要在IB裡面指定UITabView的數據源和代理為該界面的控制類。

3.主要實現的方法有有幾個段,每個段的行數,每個單元格怎麼繪制,段標題是什麼,如果需要索引的話,還得實現索引標題,點擊索引標題定位到段。

4.因為本工程沒有使用ARC,所以一開始有內存管理的問題,主要是成員變量賦值的時候是淺拷貝。正確的使用方法是self._value = value,而不是_vale = value,前者會調用設置方法,而後者只是指針賦值。


主要代碼及注釋

h文件

//
//  IndexViewController.h
//  TableViewDemo
//
//  Created by arbboter on 14/12/5.
//  Copyright (c) 2014年 arbboter. All rights reserved.
//

#import 

@interface IndexViewController : UIViewController 
{
    NSMutableArray* _arraySection;
    NSMutableArray* _arrayMember;
    NSArray* _arrayIndex;
}

@property (nonatomic, retain) NSMutableArray* _arraySection;
@property (nonatomic, retain) NSMutableArray* _arrayMember;
@property (nonatomic, retain) NSArray* _arrayIndex;
@end


m文件

//
//  IndexViewController.m
//  TableViewDemo
//
//  Created by arbboter on 14/12/5.
//  Copyright (c) 2014年 arbboter. All rights reserved.
//

#import "IndexViewController.h"

@implementation IndexViewController

@synthesize _arrayMember;
@synthesize _arraySection;
@synthesize _arrayIndex;


#pragma UITableViewDataSource
// 對應段的行數
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSInteger ret = 0;
    ret = [[_arraySection objectAtIndex:section] count];
    return ret;
}

// 繪制單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell* cell = nil;
    static NSString *CellIdentifier = @"Cell1";
    
    cell = (UITableViewCell*)[tableView  dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle  reuseIdentifier:CellIdentifier] autorelease];
    }
    
    cell.textLabel.text = [[_arraySection objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png", [_arrayIndex objectAtIndex:indexPath.section]]];
    return cell;
}

// 索引標題列表
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    NSMutableArray* index  = [[NSMutableArray alloc] init];
    
    for (int i='0'; i<='9'; i++)
    {
        [index addObject:[NSString stringWithFormat:@"%c", i]];
    }
    
    for (int i='A'; i<='Z'; i++)
    {
        [index addObject:[NSString stringWithFormat:@"%c", i]];
    }
    
    self._arrayIndex = index;
    [index release];
    return _arrayIndex;
}

// 點擊索引標題定位到段
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    return index;
}
// 分段數
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
{
    return [_arraySection count];
}

// 返回段標題
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [_arrayIndex objectAtIndex:section];
}

#pragma UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString* strRow = nil;
    
    NSArray* array = [_arraySection objectAtIndex:indexPath.section];
    strRow = [array objectAtIndex:indexPath.row];
    
    NSString* msg = [[NSString alloc] initWithFormat:@"你選擇了-%@", strRow];
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    
    [alert show];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    [msg release];
    [alert release];
}


- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSMutableArray* arrayIndex = [[NSMutableArray alloc] init];
    
    // 數字名
    for (char i='0'; i<='9'; i++)
    {
        int nMem = arc4random()%7+4;
        NSMutableArray* arrayMem = [[NSMutableArray alloc] init];
        for (int j=0; j

工程代碼下載

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved