如何將UITableView
設置爲默認爲無選擇? indexPath.row = -1
或類似的東西?UITableView將其設置爲無選擇
這裏是我創建的表碼:
UITableView* tblThisTable = [[UITableView alloc] initWithFrame:CGRectMake(elementX, elementY, elementW, elementH)];
tblThisTable.rowHeight = 30.0;
tblThisTable.layer.borderColor = [colorManager setColor:51.0 :51.0 :51.0].CGColor;
tblThisTable.layer.borderWidth = 1.0;
tblThisTable.delegate = self;
tblThisTable.dataSource = self;
,我的實的委託協議:
#pragma mark - Table View Management
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return arrStates.count;
}
// Customize the appearance of table view cells.
- (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];
}
cell.textLabel.text = [arrStates objectAtIndex:indexPath.row];
cell.textLabel.textColor = [colorManager setColor:66.0 :66.0 :66.0];
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:20.0];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
strSelectedState = [arrStates objectAtIndex:indexPath.row];
}
我有一個數據管理器類,我檢查用戶輸入的值之前,將他們保存到plist。下面是相關表的代碼(我只有國表):
...
} else if ([[_arrAllElements objectAtIndex:i] isMemberOfClass:[UITableView class]]) {
UITableView* tblThisTable = (UITableView*)[_arrAllElements objectAtIndex:i];
strElementKey = @"State";
int selectedRow = tblThisTable.indexPathForSelectedRow.row;
if(selectedRow > -1) {
strElementValue = [arrStates objectAtIndex:selectedRow];
} else {
strElementValue = @"No Entry";
}
...
所以,如果用戶點擊保存按鈕,而沒有選擇在表中的任何東西,我仍然得到了selectedRow的0值,但沒有顯示爲選中。我正在考慮UISegementedControls,你可以將它們設置爲-1以便沒有選擇。不應該有同樣的表嗎?
如何'strSelectedState'定義?如果用戶沒有選擇一行,它將保持默認狀態。 – jszumski
strSelectedState被定義爲零,但我沒有檢查。我有一個數據管理器類,在用戶保存時傳遞我需要的所有對象,請參閱上面的其他編輯以查看我如何檢查表值 – PruitIgoe
您正在檢查'didSelectRowAtIndexPath:',但是您還提到了在發生錯誤時在用戶進行任何行選擇之前保存(「在我的測試中,我不碰表,但結果總是indexPath.row = 0」)。什麼代碼收到'indexPath.row = 0'? – jszumski