2

大家好,我要问的是基本问题,我搜索了很多链接来寻找我的问题,但没有一个问题没有给出确切的结果。这是我的问题:

我想传递 rect 值并使用一些转换返回相同的类型,因为我编写了一种方法,但它给了我错误,我知道它可能在语法上是错误的,请更正下面的代码

-(void)viewDidLoad{
    CGRect testRect=getNewRect(self.view.frame);
}

我自己的方法在这里

CGRect getNewRect(CGRect normalRect){
    //some transformation
    return tranfermedrect;
}

提前给我你的建议谢谢..

4

3 回答 3

4

使用以下行,您将解决您的问题。

[self yourFunction:[NSValue valueWithCGRect:rectFrame]];

上一行是简单的方法调用,在 Objective-C 中你不能发送 CGRect 作为参数。所以你必须将CGRect转换成NSValue。

在被调用函数中,您已从 NSValue 获得 GGRect

yourView.frame = [rect CGRectValue];

我希望它会帮助你。

于 2011-04-26T11:22:14.407 回答
1

试试下面

-(void)viewDidLoad{
    CGRect testRect= [self getNewRect:self.view.frame];
}

-(CGRect) getNewRect:(CGRect) normalRect{

    //some transformation
    return tranfermedrect;
}

在 .h 文件中添加以下内容

  -(CGRect) getNewRect:(CGRect) normalRect ;
于 2011-04-26T10:55:04.553 回答
0
-(void)viewDidLoad{
    CGRect testRect= [self getNewRect:self.view.frame];
    NSLog(@"New rect %@",NSStringFromCGRect(testRect));
}

-(CGRect) getNewRect:(CGRect) normalRect{

    //some transformation
    return tranformedRect;
}

看看这是否有效

于 2011-04-26T12:02:40.237 回答