簡體   English   中英

如果用戶單擊UIView中的“ +”按鈕,如何在UITableviewcells中顯示UITextfields

[英]how can i display UITextfields inside of UITableviewcells if user click the “+” Button in UIView

我在UIView有一個“ + ”按鈕。 我的要求是,如果我單擊UITableViewCells顯示的按鈕UITextFields 我有一個想法,如果用戶單擊“ + ”按鈕,如何在UIView顯示UITextFields 但是我不知道如果用戶點擊“ + ”按鈕,如何在UITableViewCells內部顯示UITextFields 請任何人幫助我。 昨天我為這個功能而震驚。 我嘗試了一些代碼。 但是它不能正常工作。 但是我沒有找到任何解決方案。 提前致謝。

UIButton *myGreenIconButton1 = [UIButton buttonWithType:UIButtonTypeCustom];

[myGreenIconButton1 addTarget:self action:@selector(GreenIconButtonClicked)forControlEvents:UIControlEventTouchUpInside];
    [myGreenIconButton1 setBackgroundImage:[UIImage imageNamed:@"index.jpg"] forState:UIControlStateNormal];

myGreenIconButton1.backgroundColor = [UIColor clearColor];

myGreenIconButton1.frame = CGRectMake(285, 144, 25, 25);

[self.view addSubview:myGreenIconButton1];


-(void)GreenIconButtonClicked

{

   view=[[UIView alloc]initWithFrame:CGRectMake(0, 80, 300, 20)];

   text1=[[UITextField alloc]initWithFrame:CGRectMake(10, 80, 100, 20)];

   text1.borderStyle=UITextBorderStyleRoundedRect;

   text1.backgroundColor=[UIColor clearColor];

   text1.backgroundColor=[UIColor colorWithRed:0.662745 green:0.662745 blue:0.662745 alpha:0.5];

   text1.font=[UIFont systemFontOfSize:14.0];

   text1.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;

   text1.textAlignment=NSTextAlignmentCenter;

   text1.delegate=self;

   [view addSubview:text1];

   text2=[[UITextField alloc]initWithFrame:CGRectMake(120, 80, 100, 20)];

   text2.borderStyle=UITextBorderStyleRoundedRect;

   text2.backgroundColor=[UIColor clearColor];

   text2.backgroundColor=[UIColor colorWithRed:0.662745 green:0.662745 blue:0.662745 alpha:0.5];

   text2.font=[UIFont systemFontOfSize:14.0];

   text2.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;

   text2.textAlignment=NSTextAlignmentCenter;

   text2.delegate=self;

   [view addSubview:text2];

}

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

{

   static NSString *cellIdentifier = @"Cell";

   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

   if (!cell)

   {

      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

   }

     [cell.textLabel setText:@""];

     [view setTag:101];

     NSIndexPath *ip = [NSIndexPath indexPathForRow:0 inSection:0];

     UITableViewCell *cell1 = [self.tableView cellForRowAtIndexPath:ip];

     UITextField *textField = (UITextField*)[cell1 viewWithTag:101];

     UITextField *textField1=(UITextField*)[cell1 viewWithTag:101];

     UITextField *textField2=(UITextField*)[cell1 viewWithTag:101];

     [cell.contentView addSubview:text1];

     [cell.contentView addSubview:text2];

     [cell.contentView addSubview:text3];

     return cell;

}

首先使用xib或不使用xib創建自定義單元,並按照以下方式為您工作:

CustomCell.h

#import <UIKit/UIKit.h>

@interface CustomCell : UITableViewCell {

}
@property (strong,nonatomic) IBOutlet UITextField *textField;
@end

CustomCell.m

#import "CustomCell.h"

@implementation CustomCell
@synthesize textField;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code

        self.textField = [[UITextField alloc] init];
        [self.contentView addSubview:self.textField];
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

您的TableView .h

@property (strong,nonatomic) NSMutableArray *array;
@property (strong, nonatomic) IBOutlet UITableView *tblView;

您的表格視圖.m

@synthesize array;
@synthesize tblView;

-(void)viewWillAppear:(BOOL)animated {

array = [[NSMutableArray alloc] init];

[tblView reloadData];

}

-(int)numberOfSectionsInTableView:(UITableView *)tableView
{
    if( [array count ] > 0 )
    {
       return 1;  

    }
  return 0;
}


-(int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
 if( [array count ] > 0 )
    {
       return [array Count];  

    }
  return 0;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = [NSString stringWithFormat:@"CustomCell%d%d",indexPath.row,indexPath.section];
    [tblCreateProfile registerNib:[UINib nibWithNibName:@"CustomCell" bundle:nil] forCellReuseIdentifier:cellIdentifier];
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    if(cell == nil)
    {
        cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cellIdentifier =nil;

    cell.textField.text = [array objectAtIndex:indexPath.row];


return cell;

}

-(void)GreenIconButtonClicked

{

   [array addObject:@"Test"];
   [tblView reloadData];


}

我為您的要求創建了一個示例,並將其發布在github上。 你可以在這里找到代碼

我創建了一個帶有文本字段的自定義表格視圖單元格。

因此,只需嘗試使用Custom TableViewCells。 這樣您就可以實現此問題的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM