UITableView的初始化(以下拉菜单式为例)

本文详细介绍了如何初始化一个以下拉菜单形式展现的UITableView,重点讲解了如何设置排序按钮的位置,包括在段头之前和之后的配置方法,帮助读者掌握UITableView的定制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//声明文件(.h)里的代码
//
//注意:尖括号,两个以上,要用逗号隔开

#import <UIKit/UIKit.h>
#import "Masonry.h"

@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>

@end


//实现文件(.m)中的代码:
//
//点击一个排序的按钮,触发下拉菜单的加载
//排序按钮点击事件
- (void)orderByBuildTimeButtonClick:(id)sender {

               //创建tableView下拉菜单
               orderTableView=[[UITableView alloc]initWithFrame:CGRectMake(245, 65, 130, 104) style:UITableViewStyleGrouped];
               orderTableView.dataSource=self;//重点
               orderTableView.delegate=self;//重点
               [self.view addSubview:orderTableView];
               //自动布局
               [orderTableView mas_updateConstraints:^(MASConstraintMaker *make){
                              make.top.equalTo(self.view).with.offset(65);
                              make.right.equalTo(self.view).with.offset(0);
                              make.width.mas_equalTo(130);
                              make.height.mas_equalTo(121);
               }];



}


//返回cell
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

               //cell的基本设置
               NSInteger row=[indexPath row]; //通过 [indexPath row] 遍历数组
               static NSString *CellIdentifier=@"cell";// 定义个静态字符串 为了防止与其他类的tableivew重复
               ordercell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];//定义cell 的复用性 当处理大量数据时减少内存开销
               if(ordercell==nil)
               {
                              ordercell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
                              ordercell.textLabel.font=[UIFont systemFontOfSize:13];
                              ordercell.textLabel.textColor=[UIColor grayColor];
                              //每个cell的文本不相同时可以这样设置
                              switch (row) {
                                             case 0:
                                                            ordercell.textLabel.text=@"按创建时间排序";
                                                            break;

                                             case 1:
                                                            ordercell.textLabel.text=@"按更新时间排序";

                                                            break;
                                             case 2:
                                                            ordercell.textLabel.text=@"按数目排序";

                                                            break;
                              }

               }


               //orderTableView不可滚动。
               orderTableView.scrollEnabled=NO;

               return ordercell;
}

//每个cell的高度
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

               return 44;

}


//返回section数
-(NSInteger)numberOfSectionInTableView:(UITableView *)tableView{

               return 1;

}

//返回cell的行数,即多少个cell
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{


               return 3;

}


//设置tableView的段头
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

               return 0.1;
}

排序按钮的位置:
这里写图片描述

设置段头前:
这里写图片描述

设置段头后:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值