簡體   English   中英

將CGRect表達式分配給CGFloat-Swift

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM