2014-12-18 51 views
2

我想將用Objective-C編寫的代碼轉換成Swift語言。 在下面幾行:Objective-c setContentOffset方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

if (scrollView.contentOffset.y < self.mapView.frame.size.height*-1) { 
    [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, self.mapView.frame.size.height*-1)]; 

} 
} 

我遇到了這個參數,它應該是,由於文檔,評估,以布爾類型

self.mapView.frame.size.height*-1 

誰能告訴我這是怎麼回事,這表情是怎麼評價布爾?指針是無法將它轉換成Swift的東西,你能幫忙怎麼做嗎?

在此先感謝

回答

2

此錯誤的原因是因爲表達式的運算符和對象之間沒有空格。

在編譯時,編譯器打破這一行self.mapView.frame.size.height* -1。它得到了什麼 self.mapView.frame.size.height*-1。所以編譯器在這裏將它理解爲兩個獨立的參數

self.mapView.frame.size.height並告訴編譯器,這是乘以self.mapView.frame.size.height-1值的表達式需要*之間的空間。

所以您的相關銀行代碼將是如下:

func scrollViewDidScroll(scrollView: UIScrollView) { 
    if (scrollView.contentOffset.y < self.mapView.frame.size.height * -1) { 
     scrollView .setContentOffset(CGPointMake(scrollView.contentOffset.x, self.mapView.frame.size.height * -1), animated: true) 
    } 
} 
+0

非常感謝!我會盡快爲您答覆! – DCDC 2014-12-19 08:38:45

1
self.mapView.frame.size.height * -1 

這是一個乘法。

+0

不知道,當我把它貼在斯威夫特這樣的形式,Xcode中所說的「呼叫‘’失蹤的參數變量」動畫 - 我想,如果這只是一個乘法,它不會造成任何問題。此外,它應該評估bool – DCDC 2014-12-18 23:07:51

相關問題