2014-04-26 15 views
11

我一直在試圖用cgsizemake如下:如何使用cgsize make?

我試圖讓使用cgrectmake不同的大小,而不是改變座標我幀圖像。

到目前爲止,我已經嘗試

maincharacter.frame = cgsizemake (14, 14); 

,但我不斷收到錯誤

從分配不兼容類型的CGRect CGsize

在此先感謝。

+3

使用CGSizeMake的一例FYI - 目標C是大小寫敏感的。請在你的問題中使用適當的案例來清楚。 – rmaddy

+0

在您需要提供CGRECT的框架中。框架具有x軸,y軸,寬度和高度。這就是爲什麼「從不兼容的類型CGsize分配給cgrect」來的原因。 –

回答

12

CGSize只接受高度和寬度

CGSize c=CGSizeMake(width, height); 

如果你想設置幀大小使用CGRectMake

maincharacter.frame=CGRectMake(x-origin,y-origin, width, height); 
+0

如果你不打算使用它,變量'c'有什麼意義?此答案不顯示如何使用CGSizeMake更新幀。 – rmaddy

+0

我更新了我的答案。請看一看 –

18

一個解決辦法是:

CGRect frame = maincharacter.frame; 
frame.size = CGSizeMake(14, 14); 
maincharacter.frame = frame; 
1

maincharacter.frame必須返回(x,y,width,height)4參數和CGSizeMake只有「width」和「height」2參數。所以你有一個錯誤。解決方法是使用frame.size,它返回2個參數以使用CGSizeMake(14,14)。

0

要使用CGSize類型的變量c,請分別將高度和寬度分別稱爲c.0c.1。我不知道爲什麼他們命名這些屬性0和1,但你將不得不採取了丹尼斯里奇

這裏是CGSizeMake用法的例子:

 var makeSize = CGSizeMake(size.0, size.1) 
     let circ = SKShapeNode(ellipseOfSize: makeSize) 

希望有所幫助。

1
CGSize viewwidth; 
    viewwidth=[[UIScreen mainScreen] bounds].size; 

這將幫助您使用cgsize獲取設備當前分辨率。

viewwidth.width or viewwidth.height 

如上所述,您可以使用它。也如以下代碼

rightslide=[[UIView alloc]initWithFrame:CGRectMake(0,0, viewwidth.width, viewwidth.height)]; 
0

下面是在一個UIScrollView

var mainScrollView: UIScrollView? 
var numPages = 3 

override func viewDidLoad() { 
    super.viewDidLoad() 

    //this gets the screen frames size 
    var fm: CGRect = UIScreen.mainScreen().bounds 

    //creates a UIScrollView programmatically 
    self.mainScrollView = UIScrollView(frame:CGRectMake(0, 0, fm.size.width, fm.size.height)) 

    self.mainScrollView!.contentSize = CGSizeMake(self.mainScrollView!.frame.size.width, self.mainScrollView!.frame.size.height * CGFloat(numPages)) 
}