您的当前位置:首页各种uiview的控件使用

各种uiview的控件使用

来源:小侦探旅游网


下拉菜单的代码:

//****************************************************************************

@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];

因篇幅问题不能全部显示,请点此查看更多更全内容