fuz*_*uzz 48 objective-c ios swift
我用以下方法得到了一些错误:
1)我如何return screenHeight / cellCount
作为CGFLoat
第一种方法?
2)如何在第二种方法中使用等效的ObjC的MIN()和MAX()?
func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
var cellCount = Int(self.tableView.numberOfRowsInSection(indexPath.section))
return screenHeight / cellCount as CGFloat
}
// #pragma mark - UIScrollViewDelegate
func scrollViewDidScroll(scrollView: UIScrollView) {
let height = CGFloat(scrollView.bounds.size.height)
let position = CGFloat(MAX(scrollView.contentOffset.y, 0.0))
let percent = CGFloat(MIN(position / height, 1.0))
blurredImageView.alpha = percent
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*lum 71
1:你不能从Int转向CGFloat.您必须使用Int作为输入初始化CGFloat.
return CGFloat(screenHeight) / CGFloat(cellCount)
Run Code Online (Sandbox Code Playgroud)
2:使用标准库定义的最小和最大函数.它们的定义如下:
func min<T : Comparable>(x: T, y: T, rest: T...) -> T
func max<T : Comparable>(x: T, y: T, rest: T...) -> T
Run Code Online (Sandbox Code Playgroud)
用法如下.
let lower = min(17, 42) // 17
let upper = max(17, 42) // 42
Run Code Online (Sandbox Code Playgroud)
如果您使用的斯威夫特3,max()
和min()
现在被称为在序列(即集合),而不是传递参数:
let heights = [5, 6]
let max = heights.max() // -> 6
let min = heights.min() // -> 5