[英]Assigning CGRect Expression to CGFloat - Swift
我正在為下面的屬性分配一些值,但是由於我不斷返回錯誤,所以花費了很多時間。
override func layoutAttributesForElementsInRect(rect: CGRect) -> [AnyObject]! {
var padding:CGFloat = 100.0
rect.size.height = 3 <=1
rect.origin.y -= padding <=2
return self.animator.itemsInRect(rect)
}
1 =無法分配給該表達式的結果
2 =無法使用類型為((CGFloat,@value CGFloat))的參數列表調用'-='
我嘗試用CGFloat包裝屬性,例如,但是沒有運氣
rect.size.height += CGFloat(3*padding);
這是一個很好的Objective -C版本:
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {
CGFloat padding = 100.0;
rect.size.height += 3*padding;
rect.origin.y -= padding;
return [_animator itemsInRect:rect];
}
我該如何迅速將這些代碼正確化?
將var
添加到您的rect
聲明中。 當前是只讀的:
override func layoutAttributesForElementsInRect(var rect: CGRect) -> [AnyObject]! {
您也可以只創建所需的矩形:
override func layoutAttributesForElementsInRect(rect: CGRect) -> [AnyObject]! {
let padding:CGFloat = 100.0
return self.animator.itemsinRect(CGRectMake(rect.origin.x,
rect.origin.y - padding,
rect.size.width,
rect.size.height + 3 * padding))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.