2012-02-23 43 views
0

我想將數據從數據庫填充到分組樣式的表格視圖中。 (動態變化)分組樣式iPhone中的表格視圖

我試了一下,但我只是能夠在帶有標題的表格視圖中創建不同的部分。 EX:我的數據庫有5個字段NAME,ADDRESS,CONTACT,SALARY,TECHNOLOGY。

所以我想把名稱字段值放在我做的部分的標題.....成功 但是當我試圖填充該部分下的其他四個字段值時,它將只填充1個部分只要。

第二個問題是,當我上下滾動屏幕時,數值變成錯位意味着隨機改變它們的位置。

+1

我想你很快會收到一條評論,要求你看一些代碼。特別是你用來填充表格的那個。 – 2012-02-23 13:02:25

+1

請與我們分享您的代碼。尤其是你的cellForRowAtIndexPath。 – 2012-02-23 13:04:31

+0

我添加了代碼.... plz修改rowforindex部分 – Mania 2012-02-24 05:24:33

回答

0

請確保您已完成numberOfSectionsInTableView和numberOfRowsInSection。還需要對cellForRowAtIndexPath進行編碼,以識別每個部分中的部分和行。如果您需要一個完整的示例,請將您現在使用的代碼發佈到該TableView,然後我可以對其進行修改以實現您想要的功能。

5

首次進口在.h文件中的表視圖代表和確保您按照這種格式,

@interface CustomtableViewController : UITableViewController<UITableViewDelegate, UITableViewDataSource> 
{ 
    UITextField * username; 
    UIButton * submit; 
} 

@implementation CustomtableViewController 

- (void)viewDidLoad 
{ 
    UIView *newView = [[UIView alloc]initWithFrame:CGRectMake(10, 70, 300, 45)]; 
    submit = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [submit setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    //[submit setTitleColor:[UIColor colorWithWhite:0.0 alpha:0.56] forState:UIControlStateDisabled]; 
    [submit setTitle:@"Login" forState:UIControlStateNormal]; 
    [submit.titleLabel setFont:[UIFont boldSystemFontOfSize:14]]; 
    [submit setFrame:CGRectMake(10.0, 15.0, 280.0, 44.0)]; 
    [newView addSubview:submit]; 

    [self.tableView setTableFooterView:newView]; 

    [super viewDidLoad]; 

} 

    #pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
#warning Potentially incomplete method implementation. 
    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
#warning Incomplete method implementation. 
    // Return the number of rows in the section. 
    return 2; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     //self.tableView.contentOffset = CGPointMake(10, 320); 
     [self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)]; 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    if ([indexPath section] == 0) { 
     username = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; 
     username.adjustsFontSizeToFitWidth = YES; 
     username.textColor = [UIColor blackColor]; 
     if ([indexPath row] == 0) { 
      username.placeholder = @"[email protected]"; 
      username.keyboardType = UIKeyboardTypeEmailAddress; 
      username.returnKeyType = UIReturnKeyNext; 
      cell.textLabel.text = @"Username"; 
      username.clearButtonMode = YES; 
     } 
     else { 
      username.placeholder = @"minimum 6 characters"; 
      username.keyboardType = UIKeyboardTypeDefault; 
      username.returnKeyType = UIReturnKeyDone; 
      username.secureTextEntry = YES; 
      cell.textLabel.text = @"Password"; 
      username.clearButtonMode = UITextFieldViewModeAlways; 
     } 
     username.backgroundColor = [UIColor whiteColor]; 
     username.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support 
     username.autocapitalizationType = UITextAutocapitalizationTypeNone; // no auto capitalization support 
     username.textAlignment = NSTextAlignmentLeft; 
     username.tag = 0; 


     username.clearButtonMode = UITextFieldViewModeAlways; // no clear 'x' button to the right 
     [username setEnabled: YES]; 


    [cell.contentView addSubview: username]; 

     } 

    // Configure the cell... 

    return cell; 
} 

在這裏,我們爲您的用戶名和密碼,只有兩個文本框。您可以使用else if條件根據您的需要在每個連續的行中插入任何文本字段。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
    return [NSString stringWithFormat:@"User Login"]; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 

    return 50; 
} 


- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { 

    return @""; 

} 

所以,在這裏我的代碼只是用於有兩個文本框(用戶名和密碼),登錄按鈕創建一個登錄頁面。您可以根據您的需要修改我的代碼。 乾杯!

+1

謝謝Ajit,很好的解釋。 +1爲你。 :) – NSExpression 2013-04-04 07:15:24