通过网上资料,自己借助资料写的代码,这是完全代码
@interface DropDown1 : UIView上面的是实现方法,下面是使用:{ UITableView *tv;//下拉列表 NSArray *tableArray;//下拉列表数据 UITextField *textField;//文本输入框 BOOL showList;//是否弹出下拉列表 CGFloat tabheight;//table下拉列表的高度 CGFloat frameHeight;//frame的高度 } @property (nonatomic,retain) UITableView *tv; @property (nonatomic,retain) NSArray *tableArray; @property (nonatomic,retain) UITextField *textField; @end //**************************************************************************** @implementation DropDown1 @synthesize tv,tableArray,textField; - (void)dealloc { [tv release]; [tableArray release]; [textField release]; [super dealloc]; } -(id)initWithFrame:(CGRect)frame { if (frame.size.height<200) { frameHeight = 200; }else{ frameHeight = frame.size.height; } tabheight = frameHeight-30; frame.size.height = 30.0f; self=[super initWithFrame:frame]; if(self){ showList = NO; //默认不显示下拉框 tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 30, frame.size.width, 0)]; tv.delegate = self; tv.dataSource = self; tv.backgroundColor = [UIColor grayColor]; tv.separatorColor = [UIColor lightGrayColor]; tv.hidden = YES; [self addSubview:tv]; textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 30)]; textField.borderStyle=UITextBorderStyleRoundedRect;//设置文本框的边框风格 [textField addTarget:self action:@selector(dropdown) forControlEvents:UIControlEventAllTouchEvents]; [self addSubview:textField]; } return self; } -(void)dropdown{ [textField resignFirstResponder]; if (showList) {//如果下拉框已显示,什么都不做 return; }else {//如果下拉框尚未显示,则进行显示 CGRect sf = self.frame; sf.size.height = frameHeight; //把dropdownList放到前面,防止下拉框被别的控件遮住 [self.superview bringSubviewToFront:self]; tv.hidden = NO; showList = YES;//显示下拉框 CGRect frame = tv.frame; frame.size.height = 0; tv.frame = frame; frame.size.height = tabheight; [UIView beginAnimations:@"ResizeForKeyBoard" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveLinear]; self.frame = sf; tv.frame = frame; [UIView commitAnimations]; } } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [tableArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease]; } cell.textLabel.text = [tableArray objectAtIndex:[indexPath row]]; cell.textLabel.font = [UIFont systemFontOfSize:16.0f]; cell.accessoryType = UITableViewCellAccessoryNone; cell.selectionStyle = UITableViewCellSelectionStyleGray; return cell; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 35; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { textField.text = [tableArray objectAtIndex:[indexPath row]]; showList = NO; tv.hidden = YES; CGRect sf = self.frame; sf.size.height = 30; self.frame = sf; CGRect frame = tv.frame; frame.size.height = 0; tv.frame = frame; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } @end
DropDown1 *dd1 = [[DropDown1 alloc] initWithFrame:CGRectMake(10, 10, 140, 100)]; dd1.textField.placeholder = @"请输入联系方式"; NSArray* arr=[[NSArray alloc]initWithObjects:@"电话",@"email",@"手机",@"aaa",@"bbb",@"ccc",nil]; dd1.tableArray = arr; [arr release]; [self.view addSubview:dd1]; [dd1 release];
收藏的用户(0) X
正在加载信息~
推荐阅读
站点信息
- 文章2305
- 用户1336
- 访客11456237
每日一句
Talent without working hard is nothing.
没有努力,天份不代表什么。
没有努力,天份不代表什么。
MySQL 数据库优化
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
免ROOT实现模拟点击任意位置
Mobaxterm终端神器
CreateProcessW要注意的细节问题
Autonomous NAT Traversal
【教程】win10 彻底卸载edge浏览器
eclipse工程基于Xposed的一个简单Hook
排名前5的开源在线机器学习
Mac OS最简单及(Karabiner)快捷键设置
发一款C++编写的麻将
VMware NAT端口映射外网访问虚拟机linux
独家发布最新可用My-AutoPost——wordpress 采集器
新会员