Ich habe vier UITableViews
Seite-an-Seite, programmgesteuert erstellt. Problem 1: Die erste Zelle ist immer leer. Problem 2: Wenn ich nach unten blättern, sind einige Zellen leer. Wenn ich vor- und zurückschaue, verschwinden andere Zellen. HierEinige UITableView-Zellen verschwinden nach dem Scrollen nach unten und dann zurück
ist der Code, wo die UITableViews
erstellt werden, und ihre Zellen sind so eingestellt ...
Array von UITableViews
am Anfang erklärt der .m
Datei:
UITableView* channel_tableView[ TOTAL_TX_CHANNELS ];
In Funktion viewDidLayoutSubviews
erstelle ich die UITableView
:
for(int channel=0; channel < TOTAL_TX_CHANNELS; ++channel){
CGRect tableFrame = CGRectMake(x, y, width, height);
channel_tableView[ channel ] = [[UITableView alloc]initWithFrame:tableFrame style:UITableViewStylePlain];
channel_tableView[ channel ].scrollEnabled = YES;
channel_tableView[ channel ].userInteractionEnabled = YES;
channel_tableView[ channel ].bounces = YES;
channel_tableView[ channel ].delegate = self;
channel_tableView[ channel ].dataSource = self;
channel_tableView[ channel ].autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
[channel_tableView[ channel ] reloadData]; // display channel's TableView
[[self view] addSubview: channel_tableView[ channel ]];
}
hier ist, wo jede Zelle SET .......................
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"cellForRowAtIndexPath");
NSLog(@" %d = row", indexPath.row );
UITextView* test_textView;
UITextView* test_2nd_textView;
UITextView* test_3rd_textView;
// Determine which channel_tableView:
int channel;
for(channel = 0; channel < TOTAL_TX_CHANNELS; ++channel)
{
if(tableView == channel_tableView[ channel ])
break;
}
// channel = tableView's channel
NSLog(@" %d = channel", channel );
// DOCUMENTATION: Table View Programming Guide for iOS > Adding subviews to a cellís content view
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
NSLog(@" cell nil");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: CellIdentifier];
/* Though it's UITableViewCellStyleDefault, the three defaults (image, label, detail label) are nil
if not set. */
}
// Add UITextView for channel pipe to cell:
int pipe_width = 20;
int w = pipe_width;
int x = channel_tableView_width/2 - pipe_width/2;
int h = channel_row_height;
int y = 0;
test_textView = [[UITextView alloc] initWithFrame:CGRectMake (x,y, w,h)] ;
[test_textView setFont:[UIFont boldSystemFontOfSize:8.0]];
[test_textView setEditable:NO];
[test_textView setTextAlignment:NSTextAlignmentCenter];
// Round the corners and set border color
if(channel == power_channel)
[test_textView setBackgroundColor:[UIColor greenColor]];
else
[test_textView setBackgroundColor:[UIColor whiteColor]];
[[test_textView layer] setBorderColor:[[UIColor blackColor] CGColor]];
[[test_textView layer] setBorderWidth:1];
//[[test_textView layer] setCornerRadius:15];
[test_textView setClipsToBounds: YES];
// Add UITextView for PWR RX to cell:
int PWR_RX_width = channel_tableView_width/2;
y = y + h ;
w = PWR_RX_width;
x = channel_tableView_width/2 - PWR_RX_width/2;
h = 20;
test_2nd_textView = [[UITextView alloc] initWithFrame:CGRectMake (x,y, w,h)];
[test_2nd_textView setFont:[UIFont boldSystemFontOfSize:8.0]];
[test_2nd_textView setEditable:NO];
[test_2nd_textView setTextAlignment:NSTextAlignmentCenter];
// Round the corners and set border color
[test_2nd_textView setBackgroundColor:[UIColor whiteColor]];
[[test_2nd_textView layer] setBorderColor:[[UIColor blackColor] CGColor]];
[[test_2nd_textView layer] setBorderWidth: 1];
//[[test_2nd_textView layer] setCornerRadius:15];
[test_2nd_textView setClipsToBounds: YES];
// Add UITextView for device to cell:
int device_width = channel_tableView_width/2;
y = y + h-3;
w = device_width;
x = channel_tableView_width/2 - device_width/2;
h = 40;
test_3rd_textView = [[UITextView alloc] initWithFrame:CGRectMake (x,y, w,h)];
[test_3rd_textView setFont:[UIFont boldSystemFontOfSize:8.0]];
[test_3rd_textView setEditable:NO];
[test_3rd_textView setTextAlignment:NSTextAlignmentCenter];
// Round the corners and set border color
[test_3rd_textView setBackgroundColor:[UIColor whiteColor]];
[[test_3rd_textView layer] setBorderColor:[[UIColor blackColor] CGColor]];
[[test_3rd_textView layer] setBorderWidth: 1];
//[[test_3rd_textView layer] setCornerRadius:15];
[test_3rd_textView setClipsToBounds: YES];
/*
test_textView.tag = TEST_TEXTVIEW_TAG;
test_2nd_textView.tag = TEST_2ND_TEXTVIEW_TAG;
test_3rd_textView.tag = TEST_3RD_TEXTVIEW_TAG;
test_textView = (UITextView*)[cell.contentView viewWithTag: TEST_TEXTVIEW_TAG];
test_2nd_textView = (UITextView*)[cell.contentView viewWithTag: TEST_2ND_TEXTVIEW_TAG];
test_3rd_textView = (UITextView*)[cell.contentView viewWithTag: TEST_3RD_TEXTVIEW_TAG];
*/
//[test_textView setText: [NSString stringWithFormat: @"pipe-%d", indexPath.row ]];
[test_2nd_textView setText: [NSString stringWithFormat: @"PWR RX %d", indexPath.row ]];
[test_3rd_textView setText: [NSString stringWithFormat: @"device %d", indexPath.row ]];
// Add created UI objects to cell[ indexPath.row ]:
[cell.contentView addSubview:test_textView ];
[cell.contentView addSubview:test_2nd_textView ];
[cell.contentView addSubview:test_3rd_textView ];
return cell;
}
Sie nicht gleiche cellIdentifier für alle Tabellen verwenden soll. versuch [NSString stringWithFormat: @ "cell% d", chanel]; – Durgaprasad