-1
我有兩個示例函數。兩者都完全一樣。區別在於變量「objectName」的類型。AnyObject&不能分配給類型'CGFloat'的不可變表達式
第一件作品。我是具體的,並將類型設置爲UILabel。很明顯,我只能用它與UILabel類型的對象,並重新創建每種類型的功能只是醜陋的。
func _setUILabelTop(objectName: UILabel, location: CGFloat, offset: CGFloat) {
let originalBottom = objectName.frame.origin.y + objectName.frame.size.height
objectName.frame.origin.y = location + offset
objectName.frame.size.height = originalBottom - objectName.frame.origin.y
}
第二不起作用。 AnyObject被使用,並且XCode在函數的第2行上給我一個錯誤。它突出了文字objectName.frame出現錯誤:無法指定類型的不可變的表達「CGFloat的」
func _setObjectTop(objectName: AnyObject, location: CGFloat, offset: CGFloat) {
let originalBottom = objectName.frame.origin.y + objectName.frame.size.height
objectName.frame.origin.y = location + offset
objectName.frame.size.height = originalBottom - objectName.frame.origin.y
}
我的問題:
- 是否有對象類型,允許的UILabel ,UIButton,MKMapView
- 有沒有更好的方法單獨指定頂部,底部,左側或右側 屬性,而無需計算寬度?
請溫柔一點,我一直在使用XCode & Swift幾天,這也是我的第一個StackOverflow後。 =)