나는 책에서이 연습을 접하고 있는데,보기에는 임의로 배치 된 레이블을 만드는 메서드 구현이 있습니다. 코드는 다음과 같습니다.두 줄의 코드가 같은 것을 말하고 있습니까?
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)에 대한되고 내가 책에서 엑스 코드로이 운동을 복사하고 있었고, 난 라인 (12)에 도착했을 때, 나는 본능적으로 변경 이유를 이해하지 못한다. 나에게 12 행과 14 행 :
12 CGRect frame = messageLabel.frame;
14 messageLabel.frame = frame;
두 번 똑같은 말을하고있는 것입니다. 아무도 설명 할 수 없습니까?
당신이 이해해야 만하는 것은이 맥락에서 = 할당을 의미한다는 것입니다. 평등을 나타내지는 않습니다 (일부 언어에서는 IF 문과 동일 함). 따라서 A = B는 B = A와 같은 의미가 아니며 프레임 13을 다시 할당하기 전에 내부 값을 조정합니다. –