私はこの練習を本に続けていますが、ある時点で、ビュー内にランダムに配置されたラベルを作成するメソッドの実装があります。コードは次のとおりです。同じことを言っている2行のコード?
1 - (void)drawHypnoticMessage:(NSString *)message{
2 for(int i =0; i<20; i++){
3 UILabel *messageLabel = [[UILabel alloc] init];
4 messageLabel.backgroundColor = [UIColor clearColor];
5 messageLabel.textColor = [UIColor whiteColor];
6 messageLabel.text = message;
7 [messageLabel sizeToFit];
8 int width = self.view.bounds.size.width - messageLabel.bounds.size.width;
9 int randomX = arc4random() % width;
10 int height = self.view.bounds.size.height - messageLabel.bounds.size.height;
11 int randomY = arc4random() % height;
12 CGRect frame = messageLabel.frame;
13 frame.origin = CGPointMake(randomX, randomY);
14 messageLabel.frame = frame;
15 [self.view addSubview:messageLabel];
16 }
17 }
これは問題ありません。 「これは動作しませんでした
12 CGRect frame;
、と私はドン:私の質問は、ライン12と14に関してれ、私は本からのXcodeにこの練習をコピーして、私はライン12に達したとき、私は本能的にそれを変更しました理由を理解できない。私には、12行目と14行目:
12 CGRect frame = messageLabel.frame;
14 messageLabel.frame = frame;
同じことを2回言っているのは確かです。誰もそれがそうでない理由を説明してもらえますか?
私はあなたが理解しなければならないことは、=このコンテキストでの割り当てを意味すると思います。それは平等を表すものではありません(一部の言語ではIF文の場合と同じです)。したがって、A = BはここではB = Aと同じ意味ではなく、13行目はフレームを再割り当てする前に内部値を調整します。 –