iOS:为啥在自定义 TableViewCell 中写入此文本字段的文本似乎不可读
Posted
技术标签:
【中文标题】iOS:为啥在自定义 TableViewCell 中写入此文本字段的文本似乎不可读【英文标题】:iOS: Why is the text written into this textfield within a custom TableViewCell not appearing to be readableiOS:为什么在自定义 TableViewCell 中写入此文本字段的文本似乎不可读 【发布时间】:2014-12-10 02:14:52 【问题描述】:所以我有一个表视图,它位于视图控制器内的视图中。
然后我希望表格视图的单元格在左侧有一个文本标签,在右侧有一个文本字段,以便用户可以在此文本字段中输入数据。
我创建了一个自定义类tableviewcell,如下所示:
#import <UIKit/UIKit.h>
@interface TableViewCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
this 是 tableview 以及单元格所在的视图的控制器;
头文件:
#import <UIKit/UIKit.h>
@interface SignUpViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITableView *Table;
@property (strong, nonatomic) NSMutableArray *SignUpTableNames;
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath;
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section;
@end
以及将我自己的单元格类型添加到此视图/表格的两种方法:
- (TableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdent =@"Cell";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdent forIndexPath:indexPath];
//cell.textLabel.text =@"t";
//NSString *s = [self.SignUpTableNames objectAtIndex:indexPath.row];
cell.textLabel.text = (NSString *)[self.SignUpTableNames objectAtIndex:indexPath.row];
cell.textField.placeholder = @"h";
cell.textField.textColor = [UIColor greenColor];
if (indexPath.row ==4)
cell.textField.secureTextEntry = YES;
return cell;
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 5;
cell.textLabel.text 从 SignUpTableName NSMutableArray 更新得非常好,但 cell.textField 实例似乎是个问题。文本字段不可见,我不确定它是否存在。如果我点击文本字段应该在的位置,我会得到一个键盘并可以尝试在该字段中输入一些数据,但是,我实际上并没有在屏幕上看到文本。
这是怎么回事,为什么我在自定义单元格内的文本字段中看不到文本?
非常感谢,最好的问候,
克里斯
为了澄清,我还在 xcode 的图形用户界面中将单元格标识符设置为“单元格”,并在 tableview 和视图的视图控制器之间设置委托和数据源连接,也通过xcode 的图形用户界面。
【问题讨论】:
你检查文本字段连接了吗?? 您的意思是文本字段是否作为 IBOutlet 连接到单元格?是的,请参阅我原帖中的第一部分代码 更正:如果单元格被选中,文本字段是可见的。如果未选择单元格,则文本字段及其中的文本将不可见... 【参考方案1】:在 TableViewCell.m 中添加此函数并确保 NSLog 正在打印,如果没有将此函数中的内容复制到您使用的任何初始化函数中
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self)
_textField=[[UITextField alloc]initWithFrame:CGRectMake(70, 0, 150, 40)];
[self addSubview:_textField];
NSLog(@"init with style should be called");//this should be printed in log
return self;
【讨论】:
以上是关于iOS:为啥在自定义 TableViewCell 中写入此文本字段的文本似乎不可读的主要内容,如果未能解决你的问题,请参考以下文章
TapGestures 在自定义 TableViewCell 中不起作用
在自定义 TableViewCell 中动态更改 UILabel 框架
如何在自定义 tableViewCell 中初始化 UiPickerView?
无法在自定义 TableViewCell 中编辑 UITextView
在自定义 tableviewcell 中更改 UIImage
我在自定义 TableViewCell 中有一个 UICollectionView,但我无法自动调整 CollectionView 的大小