Swift中UIScrollView内的UITableView高度

时间:2016-09-22 11:36:58

标签: ios swift uitableview uiscrollview height

我尝试在UITableView内添加UIScrollView但是当我使用 UITableView tableView.contentSize.height的高度时> 它没有正确设置高度(它增加了实际高度的额外高度)

有人可以帮忙吗?

This is what I want to achieve

1 个答案:

答案 0 :(得分:0)

我可以将表的内容大小设置为表高度,并通过以下方式修改scrollView的内容大小。

我刚刚在scrollView中设计了表,并调用从viewDidAppear

修改表的高度和scrollView的内容大小

我的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.extraDesignAfterStoryboard();
}

override func viewDidAppear(animated: Bool) {

    self.modifyContentHeight();
}

func extraDesignAfterStoryboard()
{
    scrolVw = UIScrollView();
    scrolVw.frame = CGRectMake(0, 64, self.view.frame.size.width, 200);
    scrolVw.backgroundColor = UIColor.greenColor();
    self.view.addSubview(scrolVw);

    tblViewScr = UITableView(frame: CGRectMake(0, 80, scrolVw.frame.size.width, 120), style: UITableViewStyle.Plain);
    tblViewScr.delegate = self;
    tblViewScr.tag = 100;
    tblViewScr.dataSource = self;
    tblViewScr.scrollEnabled = false;
    tblViewScr.backgroundColor = UIColor.redColor();
    scrolVw.addSubview(tblViewScr);
}

func modifyContentHeight()
{
    if(self.tblViewScr.contentSize.height > self.tblViewScr.frame.height){
        var frame: CGRect = self.tblViewScr.frame;
        frame.size.height = self.tblViewScr.contentSize.height;
        self.tblViewScr.frame = frame;

        var contentSize = self.scrolVw.contentSize;
        contentSize.height = CGRectGetMaxY(self.tblViewScr.frame);
        self.scrolVw.contentSize = contentSize;
    }
}

它在我的演示项目中工作。 你可以检查一下,如果它适合你。