在我的应用程序中,我有 uitableview,其中添加了多个 uitexfiled 和 uiLabel 作为 subview 。 但是当我滚动 UItableView 时,它会覆盖 uilabel 文本和 uitexfiled 文本......
以下是我的代码:->
.h file
@property (nonatomic, retain)UILabel *lblCompany_name;
@property (nonatomic, retain)UILabel *lblCompany_address1;
@property (nonatomic, retain)UILabel *lblCompany_address2;
@property (nonatomic, retain)UILabel *lblCompany_city;
@property (nonatomic, retain)UILabel *lblCompany_state;
@property (nonatomic, retain)UILabel *lblCompany_zip;
@property (nonatomic, retain)UILabel *lblCompany_country;
@property (nonatomic, retain)UILabel *lblCompany_telephone;
@property (nonatomic, retain)UILabel *lblCompany_website;
@property (nonatomic, retain)UILabel *lblCompany_type;
@property (nonatomic, retain)UILabel *lblCompany_notes;
@property (nonatomic, retain)UILabel *lblCompany_contacts;
@property (nonatomic, retain)UILabel *lblCompany_projects;
@property (nonatomic, retain)UILabel *lblCompany_activities;
@property(nonatomic, retain)UITextField *txtCompany_name;
@property(nonatomic, retain)UITextField *txtCompany_address1;
@property(nonatomic, retain)UITextField *txtCompany_address2;
@property(nonatomic, retain)UITextField *txtCompany_city;
@property(nonatomic, retain)UITextField *txtCompany_state;
@property(nonatomic, retain)UITextField *txtCompany_zip;
@property(nonatomic, retain)UITextField *txtCompany_country;
@property(nonatomic, retain)UITextField *txtCompany_telephone;
@property(nonatomic, retain)UITextField *txtCompany_website;
@property(nonatomic, retain)UITextField *txtCompany_type;
in .m File
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 4;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int num = 0;
switch (section)
{
case 0:
num = 9;
break;
case 1:
num = 2;
break;
case 2:
num = 2;
break;
case 3:
num = 3;
break;
default:
break;
}
return num;
}
-(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];
if ([indexPath section]==0)
{
if ([indexPath row]==0)
{
lblCompany_name = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
lblCompany_name.tag = 1;
[lblCompany_name setBackgroundColor:[UIColor redColor]];
[lblCompany_name setTextColor:[UIColor blackColor]];
[lblCompany_name setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_name];
txtCompany_name = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_name.placeholder=@"Name";
[txtCompany_name setTextColor:[UIColor blackColor]];
[txtCompany_name setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_name];
}
else if ([indexPath row]==1)
{
lblCompany_address1 = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_address1 setBackgroundColor:[UIColor blueColor]];
[lblCompany_address1 setTextColor:[UIColor blackColor]];
[lblCompany_address1 setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_address1];
txtCompany_address1 = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_address1.placeholder=@"address1";
[txtCompany_address1 setTextColor:[UIColor blackColor]];
[txtCompany_address1 setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_address1];
}
else if ([indexPath row]==2)
{
lblCompany_address2 = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_address2 setBackgroundColor:[UIColor blueColor]];
[lblCompany_address2 setTextColor:[UIColor blackColor]];
[lblCompany_address2 setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_address2];
txtCompany_address2 = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_address2.placeholder=@"address2";
[txtCompany_address2 setTextColor:[UIColor blackColor]];
[txtCompany_address2 setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_address2];
}
else if ([indexPath row]==3)
{
lblCompany_city = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_city setBackgroundColor:[UIColor blueColor]];
[lblCompany_city setTextColor:[UIColor blackColor]];
[lblCompany_city setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_city];
txtCompany_city = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_city.placeholder=@"address3";
[txtCompany_city setTextColor:[UIColor blackColor]];
[txtCompany_city setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_city];
}
else if ([indexPath row]==4)
{
lblCompany_state = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_state setBackgroundColor:[UIColor blueColor]];
[lblCompany_state setTextColor:[UIColor blackColor]];
[lblCompany_state setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_state];
txtCompany_state = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_state.placeholder=@"address4";
[txtCompany_state setTextColor:[UIColor blackColor]];
[txtCompany_state setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_state];
}
else if ([indexPath row]==5)
{
UIPickerView *statePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(10, 5, 400,216)];
[statePicker setHidden:YES];
[statePicker setDelegate:self];
[statePicker setDataSource:self];
[statePicker setBackgroundColor:[UIColor whiteColor]];
[statePicker setTag:indexPath.row];
[cell.contentView addSubview:statePicker];
}
else if ([indexPath row]==6)
{
lblCompany_zip = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_zip setBackgroundColor:[UIColor blueColor]];
[lblCompany_zip setTextColor:[UIColor blackColor]];
[lblCompany_zip setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_zip];
txtCompany_zip = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_zip.placeholder=@"address5";
[txtCompany_zip setTextColor:[UIColor blackColor]];
[txtCompany_zip setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_zip];
}
else if ([indexPath row]==7)
{
lblCompany_country = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_country setBackgroundColor:[UIColor blueColor]];
[lblCompany_country setTextColor:[UIColor blackColor]];
[lblCompany_country setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_country];
txtCompany_country = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_country.placeholder=@"address6";
[txtCompany_country setTextColor:[UIColor blackColor]];
[txtCompany_country setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_country];
}
else if ([indexPath row]==8)
{
UIPickerView *countryPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(10, 5, 400,
216)];
[countryPicker setHidden:YES];
[countryPicker setDelegate:self];
[countryPicker setDataSource:self];
[countryPicker setBackgroundColor:[UIColor whiteColor]];
[countryPicker setTag:indexPath.row];
[cell.contentView addSubview:countryPicker];
}
}
else if ([indexPath section]==1)
{
if ([indexPath row]==0)
{
lblCompany_telephone = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_telephone setBackgroundColor:[UIColor blueColor]];
[lblCompany_telephone setTextColor:[UIColor blackColor]];
[lblCompany_telephone setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_telephone];
txtCompany_telephone = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_telephone.placeholder=@"address7";
[txtCompany_telephone setTextColor:[UIColor blackColor]];
[txtCompany_telephone setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_telephone];
}
else if ([indexPath row]==1)
{
lblCompany_website = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_website setBackgroundColor:[UIColor blueColor]];
[lblCompany_website setTextColor:[UIColor blackColor]];
[lblCompany_website setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_website];
txtCompany_website = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_website.placeholder=@"address8";
[txtCompany_website setTextColor:[UIColor blackColor]];
[txtCompany_website setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_website];
}
}
else if ([indexPath section]==2)
{
if ([indexPath row]==0)
{
lblCompany_type = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_type setBackgroundColor:[UIColor blueColor]];
[lblCompany_type setTextColor:[UIColor blackColor]];
[lblCompany_type setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_type];
txtCompany_type = [[UITextField alloc]initWithFrame:CGRectMake(150, 5, 400, 40)];
txtCompany_type.placeholder=@"address9";
[txtCompany_type setTextColor:[UIColor blackColor]];
[txtCompany_type setBorderStyle:UITextBorderStyleNone];
[cell addSubview:txtCompany_type];
}
else if ([indexPath row]==1)
{
lblCompany_notes = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_notes setBackgroundColor:[UIColor blueColor]];
[lblCompany_notes setTextColor:[UIColor blackColor]];
[lblCompany_notes setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_notes];
}
}
else if ([indexPath section]==3)
{
if ([indexPath row]==0)
{
lblCompany_contacts = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_contacts setBackgroundColor:[UIColor blueColor]];
[lblCompany_contacts setTextColor:[UIColor blackColor]];
[lblCompany_contacts setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_contacts];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"blue_plus_sign.png"] forState:UIControlStateNormal];
[btn setFrame:CGRectMake(400, 4, 30, 30)];
cell.accessoryView = btn;
[cell addSubview:btn];
}
else if ([indexPath row]==1)
{
lblCompany_projects = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_projects setBackgroundColor:[UIColor blueColor]];
[lblCompany_projects setTextColor:[UIColor blackColor]];
[lblCompany_projects setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_projects];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"blue_plus_sign.png"] forState:UIControlStateNormal];
[btn setFrame:CGRectMake(400, 4, 30, 30)];
cell.accessoryView = btn;
[cell addSubview:btn];
}
else if ([indexPath row]==2)
{
lblCompany_activities = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 150, 140)];
[lblCompany_activities setBackgroundColor:[UIColor blueColor]];
[lblCompany_activities setTextColor:[UIColor blackColor]];
[lblCompany_activities setFont:[UIFont boldSystemFontOfSize:14]];
[cell addSubview:lblCompany_activities];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"blue_plus_sign.png"] forState:UIControlStateNormal];
[btn setFrame:CGRectMake(400, 4, 30, 30)];
cell.accessoryView = btn;
[cell addSubview:btn];
}
}
}
return cell;
}
当我滚动 UITableView 时,UILabel 和 UITextFiled 文本被覆盖。?
我不能在 uiLabel 上设置文本吗?
谁能帮我解决这个问题吗?
最佳答案
在你的代码中你写下了一个 IF 条件
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
请从这里删除此条件...
if (cell == nil)
{
}
删除它会正常工作
关于ios - 如何解决 iOS UITableView 在滚动时覆盖 UILabel 和 UITextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25052644/