2014-08-28 69 views
0

我正在尋找使用某些值分配以下屬性,但與我一直收回的錯誤有一個非常複雜的時間。指定CGFloat的CGRect表達式 - 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); 

這是一個客觀-C版本,它工作得很好:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { 
    CGFloat padding = 100.0; 
    rect.size.height += 3*padding;   
    rect.origin.y -= padding;    
    return [_animator itemsInRect:rect]; 
} 

我怎樣才能迅速-IFY沒有錯誤的代碼?

回答

4

var添加到您的聲明rect。這是目前只讀:

override func layoutAttributesForElementsInRect(var rect: CGRect) -> [AnyObject]! { 

你也可以只創建所需的RECT:

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)) 
} 
相關問題