将表视图作为输入视图?

时间:2011-04-29 21:45:45

标签: iphone objective-c cocoa-touch

我仍在为我的iphone应用程序的注册页面苦苦挣扎 - 目前我遇到了性别领域的问题。

我的想法是,当用户按下性别字段时,包含“男性”和“女性”的表格视图从底部向上滑动,然后用户在其实际性别旁边放置一个复选标记。我真的不明白如何正确获取这个性别表视图。

目前我的GenderTableViewCell指向启用了用户交互的标签和GenderTableViewController,然后我将第一个的输入视图设置为后者的表视图。这样一个带有“男性”和“女性”的表实际上会在触摸性别字段时向上滑动但由于表格不是分组样式,因为我指定它在GenderTableViewController.xib中我感觉我不是在正确的轨道上!!

我一直在使用谷歌搜索和谷歌搜索,但未能找到任何类似的例子 - 或许桌面视图向上滑动是不是很好吗?我应该使用UIPicker吗?

2 个答案:

答案 0 :(得分:1)

我会改用UIPicker。它将更容易实现,对用户来说是一种更为标准的体验。

答案 1 :(得分:1)

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    [tableView setBackgroundColor:[UIColor clearColor]];

    [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

    return 2;
}

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

{

    return 1;
}

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

       return 35;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexpath // set row value for table

{


   UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"anycell"];  
   if(cell == nil)
   {
    cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"anycell"] autorelease];
/// UIImageView *imgView=[[[UIImageView alloc] init] autorelease];
//  UIImage *img;
    CGRect frame;
    frame.origin.x=10;
    frame.origin.y=5;
    frame.size.width=280;

     if(indexpath.section ==0)
    {
        //img=[UIImage imageNamed:@"textbox1.png"];
        frame.size.height=27;
        txtname=[[UITextField alloc] initWithFrame:frame];
        txtname.delegate=self;
        txtname.textColor=[UIColor colorWithRed:211.0/255 green:236.0/255.0 blue:245.0/255.0 alpha:1.0];
        txtname.placeholder=@"User Name";
        [txtname setAutocorrectionType:UITextAutocorrectionTypeNo];
        [txtname setKeyboardType:UIKeyboardTypeURL];
        [cell.contentView addSubview:txtname];
    }
    else if(indexpath.section == 1)
    {
        frame.size.height=27;
        txtpassword=[[UITextField alloc] initWithFrame:frame];
        txtpassword.delegate=self;
        txtpassword.textColor=[UIColor colorWithRed:211.0/255 green:236.0/255.0 blue:245.0/255.0 alpha:1.0];
        txtpassword.secureTextEntry=TRUE;
        txtpassword.placeholder=@"Password";
        [cell.contentView addSubview:txtpassword];
    }
    else
    {
        frame.size.height=27;
        //frame.size.width=200;
        btnSave=[[UIButton alloc] initWithFrame:frame];
        [btnSave setImage:[UIImage imageNamed:@"user-save.png"] forState:UIControlStateNormal];
        [btnSave addTarget:self action:@selector(saveClicked) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:btnSave];

    }
}
if(indexpath.section == 0)
    txtname.text=appDelegate.setObj.username;
else if(indexpath.section == 1)
    txtpassword.text=appDelegate.setObj.password;

UIImageView *imgView=[[[UIImageView alloc] init] autorelease];
imgView.image=[UIImage imageNamed:@"textbox1.png"];
cell.backgroundView =imgView;

cell.selectionStyle=UITableViewCellSelectionStyleNone;
return cell;        
}