2015-10-15 57 views
1

Hlo, 我创建一个菜单作为tableview并切换其按钮单击的可见性。实际上我正在改变它的高度。但改变tableview的高度只影响tableview而不是其中的单元格。 TableView也有阴影,如果我删除阴影它完美的作品。请帮忙。 下面是一些代码片段在运行时更改tableview高度

let _initialTableFrame = CGRectMake(self.view.frame.size.width - 150, 68, 140, 0) 
    _topMenuTableView = UITableView(frame: _initialTableFrame) 
    _topMenuTableView.delegate = self 
    _topMenuTableView.dataSource = self 
    _topMenuTableView.rowHeight = 35 
    _topMenuTableView.tag = 100 
    _topMenuTableView.alpha = 0.9 
    _topMenuTableView.tableFooterView = UIView() 
    _topMenuTableView.scrollEnabled = false 

    _topMenuTableView.layer.cornerRadius = 5 
    _topMenuTableView.layer.shadowColor = UIColor.blackColor().CGColor 
    _topMenuTableView.layer.shadowOffset = CGSizeMake(0, 0) 
    _topMenuTableView.layer.shadowRadius = 5.0 
    _topMenuTableView.layer.shadowOpacity = 1 
func toogleTopMenu() 
{ 
    if _isTopMenuVisible 
    { 
     let _currentTopMenuFrame = _topMenuTableView.frame 
     let _tempFrame = CGRectMake(_currentTopMenuFrame.origin.x, _currentTopMenuFrame.origin.y, _currentTopMenuFrame.size.width, 0) 


     UIView.animateWithDuration(0.2, animations: {self._topMenuTableView.frame = _tempFrame}) 
     _isTopMenuVisible = false 
    } 
    else 
    { 
     let _currentTopMenuFrame = _topMenuTableView.frame 
     let _tempFrame = CGRectMake(_currentTopMenuFrame.origin.x, _currentTopMenuFrame.origin.y, _currentTopMenuFrame.size.width, 38) 

     UIView.animateWithDuration(0.2, animations: {self._topMenuTableView.frame = _tempFrame}) 
     _isTopMenuVisible = true 
    } 
} 

回答

0

这是因为您只更改的tableView的框架不是tableViewCellHeight

试试这个

func toogleTopMenu() 
{ 
    if _isTopMenuVisible 
    { 
     let _currentTopMenuFrame = _topMenuTableView.frame 
     let _tempFrame = CGRectMake(_currentTopMenuFrame.origin.x, _currentTopMenuFrame.origin.y, _currentTopMenuFrame.size.width, 0) 

     UIView.animateWithDuration(0.2, animations: {self._topMenuTableView.frame = _tempFrame 
_topMenuTableView.rowHeight = //whatever Height you want to assign 
_topMenuTableView.reloadDate() 
}) 

     _isTopMenuVisible = false 
    } 
    else 
    { 
     let _currentTopMenuFrame = _topMenuTableView.frame 
     let _tempFrame = CGRectMake(_currentTopMenuFrame.origin.x, _currentTopMenuFrame.origin.y, _currentTopMenuFrame.size.width, 38) 
    UIView.animateWithDuration(0.2, animations: {self._topMenuTableView.frame = _tempFrame 
_topMenuTableView.rowHeight = //whatever Height you want to assign 
_topMenuTableView.reloadDate() 
}) 
    _isTopMenuVisible = true 
} 
} 

它将help.Thanks

+0

问题解决了.....谢谢@baydi – Shubham

+0

随时兄弟 – baydi

相关问题