2012-04-24 47 views
1

您好我正在學習iOS編程。我如何添加一個視圖使用界面生成器

我有一個奇怪的使用界面生成器。

我做一個tableViewController,也使的.xib文件

現在我可以看到的UITableView在Interface Builder。

我必須添加一個名爲myView的視圖,其中包含按鈕,標籤等。

我想myView被設置爲tableView的區域的頂部,就像tableview的標題。

,所以我做出MyView的,並添加按鈕,標籤等

和我拖動視圖入的UITableView。好的,這裏很好。

我可以看到myView被設置爲界面生成器中的UITableView的頂部。

但我運行程序,myView沒有出現。

當然用IBOutlet連線,並聲明屬性併合成。

但我使用的NSLog這樣

if(self.myView == nil) 
    NSLog(@"omg it's nil!!!"); 

我不能理解的NSLog打印我的提示區。

因爲我在界面構建器中創建了這個視圖!

我可以看到tableView,當然可以看到單元格。

爲什麼myView沒有出現?

我該如何解決?

我想知道如何使用界面生成器修復它。

請幫我

回答

2

不知道這是否使用Interface Builder是可能的,我通常手動創建一個視圖,並把它添加到tableview中頭在viewWillAppear中的方法,像這樣:

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, 60)]; 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10,self.tableView.bounds.size.width, 50)]; 
    label.text = [person getFullName]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.backgroundColor = [UIColor clearColor]; 
    label.font = [UIFont boldSystemFontOfSize:25]; 
    label.shadowColor = [UIColor whiteColor]; 
    label.shadowOffset = CGSizeMake(0,1); 
    [headerView addSubview:label]; 

    self.tableView.tableHeaderView = headerView; 

一個更簡單方法是在一個單獨的榫文件創建一個視圖,然後將其加載到表頭時加載這樣的實現代碼如下:

UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"MYXIBFILEHERE" bundle:nil]; 
self.tableView.tableHeaderView = aViewController.view; 
2

我的經驗用使用XCode 4.3:

您必須首先將UITableView和UIView放在同一個超級UIView上。然後,當將UIView拖到UITableView的頂部時,您會注意到XCode突出顯示將視圖插入爲頁腳的選項。

完成後,您可以從超級視圖中分離UITableView並將其刪除。

0

我已經能夠得到這個工作的唯一方法是如下:

  1. 添加新的筆頭文件到項目。 希望您的表格頁腳/頁眉看起來在nib文件中排列視圖。
  2. 將筆尖中文件所有者的類設置爲您的 UITableViewController的類。這樣我們可以將此 筆尖中的視圖連接到UITableViewController類中的IBOutlet。
  3. 在您的UITableViewController中設置UIView IBOutlet,以指向新筆尖中的 視圖。
  4. 在你的UITableViewController類,做這樣的事情在 viewDidLoad中:

(顯然代碼將無法正確地格式化,如果它是一個編號列表後直接)

[[NSBundle mainBundle] loadNibNamed:@"statsFooterView" owner:self options:nil]; 
self.tableView.tableFooterView = myFooterView; 
相關問題