答案 0 :(得分:33)
在 Xcode 9 中,using (new Busy(this, true))
{
//Your api or waiting stuff
}
会根据tableview
自动创建估算的单元格。由于你没有提供自动布局,这就是你得到这个的原因。
您需要通过选择tableview来禁用估计的和自动的单元格大小,并取消选中以下两个选项:
为行高提供您想要的值,并相应地创建单元格。
希望这可以提供帮助。
答案 1 :(得分:3)
在UITableViewDelegate
中添加此代码begin
@token = Stripe::Token.create(
:card => {
:number => params[:card][:card_number],
:exp_month => params[:card][:exp_month],
:exp_year => params[:card][:exp_year],
:cvc => params[:card][:ccv]
},
)
rescue Stripe::CardError, Stripe::InvalidRequestError => e
flash[:error] = e.message and return
rescue
flash[:notice] = 'Something went wrong! Try Again' and return
end
答案 2 :(得分:2)
在viewDidLoad()
中将行高和估计的行高设置为自动为
table.rowHeight = UITableViewAutomaticDimension
table.estimatedRowHeight = UITableViewAutomaticDimension
在heightForRowAt:
设置身高UITableViewAutomaticDimension
为
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
注意:将标签long restaurant name
的行数设置为0。
答案 3 :(得分:1)
确保执行以下步骤,自动尺寸对单元格/行高度布局有效。 (以下是UILabel的示例代码以及如何为表格单元格设置内容特定高度。)
UITableViewAutomaticDimension
分配给rowHeight& estimatedRowHeight heightForRowAt
并向其返回值UITableViewAutomaticDimension
)-
@IBOutlet weak var table: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Don't forget to set dataSource and delegate for table
table.dataSource = self
table.delegate = self
// Set automatic dimensions for row height
// Swift 4.2 onwards
table.rowHeight = UITableView.automaticDimension
table.estimatedRowHeight = UITableView.automaticDimension
// Swift 4.1 and below
table.rowHeight = UITableViewAutomaticDimension
table.estimatedRowHeight = UITableViewAutomaticDimension
}
// UITableViewAutomaticDimension calculates height of label contents/text
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
// Swift 4.2 onwards
return UITableView.automaticDimension
// Swift 4.1 and below
return UITableViewAutomaticDimension
}
用于UITableviewCell中的标签实例
答案 4 :(得分:1)
yourTableView.rowHeight = UITableView.automaticDimension and
yourTableView.estimatedRowHeight = UITableView.automaticDimension
在UITableView.automaticDimension
委托方法中返回tableView(_:heightForRowAt:)
设置所有约束。底部约束对于增加表格视图单元格的高度很重要。
一切准备就绪
答案 5 :(得分:0)
如果您希望单元格根据其内容占用空间,则需要在表格视图中返回 UITableViewAutomaticDimension 委托方法 heightForRowAt :和 estimatedHeightForRowAt 强>:
答案 6 :(得分:0)
在对我有用的this guide之后,您必须添加一堆约束,然后自动计算rowheight。
简而言之,我做了什么:(添加和修改约束是情节提要视图右下角的两个最右边的按钮)我首先选择了原型单元中的所有视图,删除了所有约束(最右边有一个不错的选择按钮),然后添加所有缺少的约束(那里是另一个不错的选择),最后我从右边选择了第二个按钮,然后单击所有红线。您可以在同时选择所有视图的情况下执行此操作。然后它起作用了。
答案 7 :(得分:0)
您可以在tableviewdelegate中手动进行操作:
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}