UITableView的简单用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableView的简单用法相关的知识,希望对你有一定的参考价值。

#import "AppDelegate.h"

 

@interface AppDelegate ()

 

@end

 

@implementation AppDelegate

 

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //初始化一个ViewController的一个对象

    ViewController *view = [[ViewController alloc] init];

    //把导航栏添加到上面

    UINavigationController *navc = [[UINavigationController alloc] initWithRootViewController:view];

   // self.window.rootViewController = navc;

    //初始化第二个页面

   SecondViewController *secondVc = [[SecondViewController alloc] init];

    //

    secondVc.tabBarItem.title = @"second";

    secondVc.tabBarItem.badgeValue = @"2";

    UITabBarController *tabbarcon = [[UITabBarController alloc] init];

    tabbarcon.tabBar.tintColor = [UIColor greenColor];

    [tabbarcon setViewControllers:@[navc,secondVc]];

    

    self.window.rootViewController =tabbarcon;

    

    

    return YES;

}

 

#import <UIKit/UIKit.h>

#import "SecondViewController.h"

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

@property (nonatomic ,strong) UITableView *tableV;

@property (nonatomic ,strong) NSMutableArray *arry;

 

@end

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

   //设置导航栏的biaot

    self.title = @"first";

   //设置触发跳到下一页的按钮

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"arrow_normal"] style:UIBarButtonItemStylePlain target:self action:@selector(tableView:didSelectRowAtIndexPath:)];

    //初始化可变数组

    self.arry = [NSMutableArray array];

    //循环给数组赋值

    for (int i = 0; i< 100; i++) {

        [self.arry addObject:[NSString stringWithFormat:@"%i%i",i,i]];

    }

    //初始化tableV的大小及风格

    self.tableV = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];

    //指定self.tableV.delegate代理为self

    self.tableV.delegate = self;

    //给分隔栏设置颜色

    self.tableV.separatorColor = [UIColor blueColor];

    // //指定self.tableV.dataSource代理为self

    self.tableV.dataSource = self;

    //把tableV加载到view上

    [self.view addSubview:self.tableV];

    //指定单元格的唯一标识

    [self.tableV registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];

   

    

}

 

 

//定义一个全局变量来接收索引indexPath.row

    int num;

 

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

//设置每个分区显示的行数

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return self.arry.count;

}

 

//每个单元格显示的内容

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *cellIdentity = @"cell";

    //单元格重用机制

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentity forIndexPath:indexPath];

    cell.textLabel.text = self.arry[indexPath.row];

    cell.textLabel.textAlignment = NSTextAlignmentCenter;

    //给cell添加背景色

    cell.backgroundColor = [UIColor yellowColor];

    return cell;

}

 

// 代理方法,显示选中单元格的信息

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    //初始化一个SecondViewController的对象

    SecondViewController *second = [[SecondViewController alloc] init];

   //把self.arry[indexPath.row]的值赋值给second.str

    second.str = self.arry[indexPath.row];

    //用num接收相应的索引

    num = (int)indexPath.row;

    //定义一个字符串str接收self.arry[indexPath.row]的值

    NSString *str =self.arry[indexPath.row];

    //初始化一个提示栏UIAlertController的对象并把他赋值

    UIAlertController *alertC= [UIAlertController alertControllerWithTitle:@"你确定要点击它" message:str preferredStyle: UIAlertControllerStyleAlert];

    //定义两个 UIAlertAction ,*action2取消

    UIAlertAction  *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil];

    //*action1确定

    UIAlertAction  *action1 = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        //点击确定进入下一页

    [self.navigationController pushViewController:second animated:YES];

    }];

     //把action1,action2添加到alertC上

    [alertC addAction:action1];

    [alertC addAction:action2];

    //显示alertC

    [self presentViewController:alertC animated:YES completion:nil];

   

}

 

 

//在窗体未加载之前添加监听

-(void)viewWillAppear:(BOOL)animated{

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myPostValue:) name:@"lamco" object:nil];

}

//添加观察者

-(void)myPostValue:(NSNotification *)noti{

    

    [self.arry replaceObjectAtIndex:num withObject:noti.object];

    [self.tableV reloadData];

}

//移除观察者

-(void)dealloc{

    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"lamco" object:nil];

    NSLog(@"销毁通知,移除观察者");

    

}

 

@end

 

#import <UIKit/UIKit.h>

 

@protocol postValuedelegate <NSObject>

 

-(void)postValue:(NSString *)Value;

 

@end

@interface SecondViewController : UIViewController<UITextFieldDelegate>

 

 

@property (nonatomic ,strong) NSString *str;

@property (nonatomic ,strong) UITextField *textfld;

@property (nonatomic ,assign) id<postValuedelegate> delegate;

 

 

@end

 

#import "SecondViewController.h"

 

@interface SecondViewController ()

 

@end

 

@implementation SecondViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    //添加背景图片

    UIImageView *imageV= [[UIImageView alloc] initWithFrame:self.view.frame ];

    imageV.image = [UIImage imageNamed:@"82r58PICYeM_1024.jpg"];

    self.view.backgroundColor = [UIColor colorWithPatternImage:imageV.image];

 

   // 初始换文本框textfld

    self.textfld = [[UITextField alloc] initWithFrame:CGRectMake(100, 200, 200, 100)];

    //给文本框设置背景图片

    UIImageView *imageV1 = [[UIImageView alloc] initWithFrame:self.textfld.frame];

    imageV1.image = [UIImage imageNamed:@"27u58PICvXI_1024.jpg"];

    self.textfld.backgroundColor = [UIColor colorWithPatternImage:imageV1.image];

    //指定代理

    self.textfld.delegate = self;

    //通过属性str给文本框传值

    self.textfld.text = self.str;

    //把文本居中

    self.textfld.textAlignment = NSTextAlignmentCenter;

    //在view上显示textfld

    [self.view addSubview:self.textfld];

    

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

 

//隐藏键盘

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    

    //1.通知

    NSNotification *noti = [[NSNotification alloc] initWithName:@"lamco" object:textField.text userInfo:nil];

    //单列,

    [[NSNotificationCenter defaultCenter] postNotification:noti];

    

    

    if ([textField isFirstResponder]) {

        [textField resignFirstResponder];

    }

    [self.navigationController popToRootViewControllerAnimated:YES];

    

    return YES;

}

 

 

 

 

@end

 

以上是关于UITableView的简单用法的主要内容,如果未能解决你的问题,请参考以下文章

ios初识UITableView及简单用法二(模型数据)

MJRefresh–用法最简单的下拉刷新框架

SWIFT UITableView的基本用法

ios开发之--UITableView中的visibleCells的用法

UITableView类用法大全:UITableView属性

iOS UICollectionView简单使用