14

我一直在尝试使用cgsizemake如下:

我正在尝试使用cgrectmake而不是更改坐标来使图像的框架具有不同的大小。

到目前为止我已经尝试过

 maincharacter.frame = cgsizemake (14, 14); 

但我不断收到错误

从不兼容的类型 CGsize 分配给 cgrect

4

6 回答 6

18

One solution would be:

CGRect frame = maincharacter.frame;
frame.size = CGSizeMake(14, 14);
maincharacter.frame = frame;
于 2014-04-26T05:41:44.067 回答
14

CGSize 只接受高度和宽度

CGSize c=CGSizeMake(width, height);

如果要设置帧大小,请使用 CGRectMake

maincharacter.frame=CGRectMake(x-origin,y-origin, width, height);
于 2014-04-26T05:37:40.493 回答
1

maincharacter.frame 必须返回 (x, y, width, height) 4 个参数,而 CGSizeMake 只有 "width" 和 "height" 2 个参数。所以你有一个错误。解决方案是使用 frame.size,它返回 2 个参数以使用 CGSizeMake(14, 14)。

于 2014-04-26T09:39:24.317 回答
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)];
于 2015-05-18T09:28:40.427 回答
0

要使用类型的变量cCGSize您将分别调用c.0c.1作为高度和宽度。我不知道他们为什么将这些属性命名为 0 和 1,但您必须与 Dennis Ritchie 一起讨论

以下是 的示例用法CGSizeMake

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

希望有帮助。

于 2015-05-15T17:18:48.847 回答
0

下面是在 UIScrollView 中使用 CGSizeMake 的示例

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))
 }
于 2015-07-19T06:56:16.340 回答