2016-08-12 16 views
1

iOS中的新手。 我有一個自由的ViewController,它有一個UIImageView和 UITableView。iOS 8:如何以自由形式ViewController中的UITableview以編程方式設置高度

我在這裏面臨的問題是,當我嘗試滾動表格視圖 某些項目由於在自由形式的視圖控制器中佔用的高度而保持隱藏狀態。

我試着下面的代碼根據屏幕的大小以編程方式設置UItableview的高度爲 。

let screenSize: CGRect = UIScreen.mainScreen().bounds 
    tableview.frame = CGRectMake(0,imageview.frame.height, 280, (screenSize.height -imageview.frame.height)) 

上述代碼無法調整tableview的大小。

是否有任何其他方式可以在運行系統中設置UITableview大小或在故事板中設置 。

解決方案

我解決了問題奠定了以後我使用自定義的高度和寬度兩種觀點指定translatesAutoresizingMaskIntoConstraints =真兩種意見後。我按照我的設計和應用程序要求做了。

+1

您是否在使用autolayout? –

+0

是@DharmbirSingh我正在使用AutoLayout – iAviatorJose

回答

3

如果您正在使用自動佈局或約束,你必須

tableview.translatesAutoresizingMaskIntoConstraints = true 

,新的框架不會更新,因爲它正在通過自動佈局和約束來獲取。

編輯:

1,如果你有[調整滾動視圖插圖]在故事板,可在您的視圖控制器啓用禁用它,和測試看看。

2-是否以編程方式創建imageView?或者來自界面構建器,你有沒有限制?

3-你知道狀態欄有一個高度,你也必須補償它嗎?

4-您使用導航欄嗎?

+0

我在做了上面的工作之前給了tableView一個框架,但是現在我的imageview已經被tableview重疊了,你可以提出一些建議。 – iAviatorJose

+0

如果您發佈圖片和詳細信息,我想我可以提供幫助。 – DeyaEldeen

+0

你可以看到上面的圖片 – iAviatorJose

1

有一個UITableViewCell高度的代表功能。

在這裏您可以指定特定細胞的indexPath和應用新的幀之前返回你的身高爲它

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.section == yourSection && indexPath.row == yourRow) { 
     return 150.0; 
    } 
    // "Else" 
    return someDefaultHeight; 
} 
0

不要以編程方式設置Tableview高度。

只要做一件事

採取上,下,前導,尾隨約束和設定的常數值0

添加用戶圖像查看到的tableview頭。

相關問題