2012-02-15 4 views
-1

フレーム付きのUIViewがあります:CGRectMake(0,0,1024,768);UIView.frameの負の座標

そして、私はそのサブビューの(0,0)のポイントを設定したい(0、512);

は、私が試した:それはOKようだが、

CGRect fr = self.frame; 
fr.origin.x = self.bounds.size.width/2; 
self.frame = fr; 

負の座標は動作しません。私は-512から512

にxが、私は否定的COORDSを動作させる何をすべきしたいですか?

+0

最終フレームは何ですか? CGRectMake(-512,0,1024,768)? – sch

+0

しかし、x = -512は画面の左側にあるはずです – DarkFighter

+0

ここで私が理解していることを説明しようとします。あなたは同じ場所にとどまることを望みます。しかし、座標値を - width/2だけずらしたいとします。そうですか? – sch

答えて

1

私はあなたがその場合はCGRectMake(-512,0,1024,768)

にあなたのビューのフレームを変換したいあなたが使用することができます

fr.origin.x = self.bounds.size.width/2; 

fr.origin.x = - self.bounds.size.width/2; 

代わりに行うことを理解します同じ結果を得るために次のようにします:

self.frame = CGRectInset(self.frame, -CGRectGetMidX(self.frame), 0);  

これがあなたが探しているものでない場合は、質問を明確にしてください。

編集

明確化した後、私はこれを達成する唯一の方法は、座標CGRectMake(512,0,1024,768)とclipsToBoundsと= NOと親ビューを持つことだと思います。 CGRectMakeフレーム(-512,0,1024,768)のこの親ビューにビューを追加します。

UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(512,0,1024,768)]; 
parentView.clipsToBounds = NO; 
[originalParentView addSubview:parentView]; // or controller.view = parentView; 

[parentView addSubview:view]; 
view.frame = CGRectMake(-512,0,1024,768); 
+0

いいえ、それは私が探しているのではありません - あなたのコードはフレームを動かすだけですが、私は同じ座標でフレームが必要です。私が必要とするのは、uiviewの座標系を変更することだけです:左上隅は-512,0、右上隅は512,0 – DarkFighter

+0

schです。ありがとう!できます! – DarkFighter

0

ではなく、あなたが現在使用しているもののCGRectMake(0.0f, 0.0f, 1024.0f, 768.0f)をお試しください。

その後、次の操作を行うことになるでしょう。

CGRect frame = self.view.frame; 
frame.origin.x = self.bounds.size.width/2.0f; 
self.view.frame = frame; 

これを試してください。

+0

それはあまりにも機能しません。 私はあなたのコードを試しましたが、ネガティブコードは再び動作しません – DarkFighter

+0

私はあなたが何をしようとしている仕事のために働くだろうと思います。しかし、あなたの質問を明確にする必要があるかもしれません。 –

0

あなたがしようとしていることを正確にはわかりません。ここに負の数を作成する必要はありません。

これらのアイデアを助けるかどうかを確認してください:

  1. あなたはフロート使用2.0fを分割するときだけではなく、2

    fr.origin.x = self.bounds.size.width/2.0f ;

  2. 多分あなたがビューの中心を配置したい場所を考えるように容易になるだろう。

    self.center = CGPointMake(は0.0f、512.0f)。

+0

1.ありがとうございました! 2.いいえ、self.frame.size.width/2.0fで自分のビューの0,0を設定する必要があります – DarkFighter

+0

self.center = CGPointMake(-512.0f、0.0f)のようになります。コーディングは簡単でなければなりません。あなたが何を意味するのか正確には分かりません。 – picciano

関連する問題