我有ScrollView,在这个滚动视图中我有按钮和一个表。我想在加载表单时更改位置按钮和大小表。 例如,如果表格由5个单元格组成,则按钮位置需要在200 y(向下)上更改。并且表需要有height = height_table + 200。
我的代码:
func setControlsPosition(){
tableView.contentOffset.y += 40 * CGFloat(names.count)
tableView.contentSize = CGSize(width: 304, height: tableView.contentOffset.y)
let lblY: CGFloat = tableView.frame.origin.y + tableView.frame.size.height+10 //10 for spacing between tableView and label
lb.frame = CGRectMake(26, lblY, 46, 30)
let btn1Y: CGFloat = lb.frame.origin.y + lb.frame.size.height + 10 // Spacing between label and button
btn1Y.frame = CGRectMake(26, btn1Y, 46, 30)
}
//This is code work well
override func viewDidAppear(animated: Bool) {
self.yPosition += 40 * CGFloat(names.count)
self.scrollViewContentSize += 40 * CGFloat(names.count)
self.scrlMain.contentSize = CGSize(width: 320,height: self.scrollViewContentSize)
//This function is performed, but nothing changes
setControlsPosition()
}
我做错了什么?
我试图添加func setControlsPosition,但什么也没发生。
代码:
SELECT userid, MIN(logdate) AS first_logdate
FROM table
WHERE userid IN (
SELECT userid FROM table
WHERE logdate BETWEEN '2011-01-01' AND '2011-01-21'
)
GROUP BY userid
我在函数setControlsPosition中检查了names.count = 5。这是对的。
答案 0 :(得分:0)
您可以使用上一个控件作为参考来定义其他控件的位置
override func viewDidAppear(animated: Bool) {
setControlsPosition()
self.scrollViewContentSize = button3.frame.origin.y + button3.frame.size.height + 10
self.scrlMain.contentSize = CGSize(width: 320,height: self.scrollViewContentSize)
}
func setControlsPosition(){
tableView.contentOffset.y += 40 * CGFloat(names.count)
tableView.contentSize = CGSize(width: 304, height: tableView.contentOffset.y)
let lblY: CGFloat = tableView.frame.origin.y + tableView.frame.size.height+10 //10 for spacing between tableView and label
lb.frame = CGRectMake(26, lblY, 46, 30)
let btn1Y: CGFloat = lb.frame.origin.y + lb.frame.size.height + 10 // Spacing between label and button
btn1Y.frame = CGRectMake(26, btn1Y, 46, 30)
}
请理解并实施。
同样,您可以为所有其他控件执行此操作。设置完所有其他控件后,您可以根据最后一个控件的位置定义滚动内容。
使用Autolayout,所有这一切都可以更简单。尝试使用它。
希望这可以帮到你