2013-01-03 71 views

回答

1

如果您想添加UILabel對象,只需遍歷結果集,向視圖中添加標籤即可。喜歡的東西:

NSInteger rowNum = 0; 
NSArray *columnWidths = @[@(50), @(120), @(75), @(75)]; 
CGFloat rowHeight = 24.0; 

FMResultSet *rs = [db executeQuery:sql]; 

while ([rs next]) 
{ 
    CGFloat x = 0.0; 
    NSInteger colNum = 0; 
    for (NSNumber *columnWidth in columnWidths) 
    { 
     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x, 
                    rowHeight * rowNum, 
                    [columnWidth floatValue], 
                    rowHeight)]; 
     label.textAlignment = NSTextAlignmentCenter; 
     label.layer.borderColor = [UIColor blackColor].CGColor; 
     label.layer.borderWidth = 1.0; 
     label.text = rs[colNum++]; 
     [self.view addSubview:label]; 
     x += [columnWidth floatValue]; 
    } 
    rowNum++; 
} 

[rs close]; 

我剛纔輸入在,所以我相信裏面還有錯別字,但希望它足以讓你的可能是什麼樣子的想法。如果屏幕上顯示的行數太多,可以在視圖中添加滾動視圖,然後將標籤作爲子視圖添加到視圖中。

我也認爲tableview是一個很好的方法。或者動態構建一個您在UIWebView中顯示的HTML字符串。噸的選擇在這裏。這取決於你的最終目標是什麼,數據的性質,你想要什麼類型的用戶交互。

+0

謝謝先生。由於您對單元格的寬度進行了硬編碼,因此如果文本長度超過了單元格寬度應完成的操作:無論如何,列寬可以根據插入的數據進行自動大小自動調整。感謝您再次查看它。 –

+1

@JacobWood再次提供了大量的選項,但通過編程添加'UILabel'控件有點麻煩。也許迭代一次通過結果集,調用'NSString'方法['sizeWithFont'](http://developer.apple.com/library/ios/documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/sizeWithFont :)並以編程方式確定您的'columnWidths'數組中所有列的最大寬度。另外,如果你建立了HTML表格,那麼列寬將被照顧。 – Rob

+0

沒有與數據交互,只是上圖中提到的格式的簡單顯示。 –

1

您可以通過使用的UITableView定製UITableViewCells完成上述。

而且你可以維護一個數組作爲視圖控制器的數據源。

考慮到您希望擁有與共享相同的佈局(每行有四個標籤),您將從數據庫獲取數據。

因爲從數據庫中獲取的數據可能會持續增加,所以在顯示長列表的數據時,UITableView是最好的選擇,因爲內存管理和單元創建是自動處理的。

如果你打算只有標籤,那麼事情可以得到棘手爲你。因爲如果使用select查詢獲取的行數太多,則最終會創建大量視圖,這會導致內存問題。

而且,如果你不想讓你的用戶與任何行的交互,然後實現下面的方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

以下是創建定製單元的鏈接:

http://www.appcoda.com/customize-table-view-cells-for-uitableview/

下面是使用表視圖的鏈接:

http://www.appcoda.com/ios-programming-tutorial-create-a-simple-table-view-app/

祝你好運!

+0

我不想實現tableview唯一的標籤,這有可能嗎?你可以給我鏈接到你張貼的建議。謝謝拉維。 –

+0

感謝Ravi.Can請提供鏈接到滿足上述要求的源代碼。這將是一個很大的幫助。因爲我不知道如何進行上述要求。再次感謝。 –

+1

不客氣,我希望這可以幫助。如果您不打算實施表格視圖,請考慮內存問題。 –