как передать cgrect в качестве параметра и как получить cgrect в качестве типа возврата в ipad - PullRequest
2 голосов
/ 26 апреля 2011

Привет всем, что я собираюсь задать базовый вопрос. Я искал много ссылок на мой вопрос, но ни одна из вещей не дала точного результата. Вот мой вопрос:

Я хочу передать прямоугольное значение и вернуть то же самоеиспользуя какое-то преобразование, я написал один метод, но он дает мне ошибки, которые, как я знаю, могут быть синтаксически неправильными, пожалуйста, исправьте приведенный ниже код

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

мой собственный метод здесь

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

Дайте мне ваше предложение, спасибо заранее.

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

Воспользовавшись следующей строкой, вы решите свою проблему.

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

Над строкой находится простой вызов метода, а в target-C вы не можете отправить CGRect в качестве параметра. поэтому вам нужно преобразовать CGRect в NSValue.

При вызове функции вы получаете GGRect из NSValue

yourView.frame = [rect CGRectValue];

Надеюсь, это поможет вам.

1 голос
/ 26 апреля 2011

Попробуйте с ниже

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

-(CGRect) getNewRect:(CGRect) normalRect{

    //some transformation
    return tranfermedrect;
}

Добавить ниже в .h файл

  -(CGRect) getNewRect:(CGRect) normalRect ;
0 голосов
/ 26 апреля 2011
-(void)viewDidLoad{
    CGRect testRect= [self getNewRect:self.view.frame];
    NSLog(@"New rect %@",NSStringFromCGRect(testRect));
}

-(CGRect) getNewRect:(CGRect) normalRect{

    //some transformation
    return tranformedRect;
}

посмотреть, работает ли это

...