我试图在其单元格中使用多行文本字段开发UITableView。 我以编程方式创建了UITableView和单元格,此时我添加了一个普通的UITextField,但我真的想要什么类似应用聊天打字字段,所以当我输入更多字符时,它会自动增加其高度和UITableViewCell高度。 (请查看附图)
我的UITableView委托方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1; //count of section
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
return 100;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [selectedTabFields count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cell= [tableView1 dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil)
{
cell = [[homeCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
[cell.contentView addSubview:[self getIntegerTextfield:indexPath.row]];
}
return cell;
}
//Integer Textfield
-(UITextField *)getIntegerTextfield:(NSUInteger)index{
UITextField *textField= [[UITextField alloc] initWithFrame:CGRectMake(15,40,cell.frame.size.width-30,cell.frame.size.height)];
textField.placeholder=@"Text here";
textField.tag=index;
textField.delegate=self;
textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;
textField.textAlignment=UITextAlignmentLeft;
textField.font= [UIFont fontWithName:@"Helvetica-Neue Light" size:14];
textField.textColor=[UIColor darkGrayColor];
textField.backgroundColor=[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1];
return textField;
}
即使它尝试了这段代码,但它无法正常工作,当我运行此更改时,UITableView Cell为空。 Tried the same, but not working 请建议回答。
附加图片
答案 0 :(得分:2)
为什么在拥有第三方图书馆时重新发明轮子? This完全满足您的要求。只需使用UITextView
代替。
编辑:因为您说上述内容因某些原因不适合您。您可以使用其他人,例如SlackhQTextViewController等。
答案 1 :(得分:0)
添加 getIntegerTextfield:(NSUInteger)索引{
textField.frame.size.height = (textField.text.length/a) * b;
a =您在xib中添加的textField的大小。 b = 1行文本字段的高度。