2014-11-16 3 views
1

Parse.com 로그인 서비스가 내 앱에 성공적으로 통합되었지만 로그인 창 (PFLoginViewController)에서 로고를 변경하는 데 문제가 있습니다. 특히, 로고의보기는 새 로고가 설정된 후에 위치를 변경하는 것으로 나타납니다.구문 분석 로그인 창에서 UIView가 예기치 않게 텍스트 필드를 이동합니다.

원래 '구문 분석'로고 프레임 (159,128,222,68)

새로운 사용자 정의 로고 프레임 (60,12,420,68)

다른 큰 문제는 사용자 이름과 암호 다른 로고를 사용하면 필드가 최대 100 픽셀 위로 이동합니다. 즉, 새 로고가 겹쳐지며 모두 엉망입니다. 두 경우 모두 사용자 이름 필드의 좌표는 다음과 같습니다. '구문 분석'로고

사용자 이름 필드 : (60,232,420,44)

사용자 이름 필드 사용자 정의 로고 : (60,116,420,44)

나는 내가 부족 모르겠어요 , 그래서 어떤지도라도 멋질 것입니다. 읽어 주셔서 감사합니다!

잡집는 :

  • 새로운 로고는 720x300입니다.
  • 로고 대체의 경우, 을 기반으로 코드를 사용하여 PFLoginViewController의 하위 클래스를 만들었습니다.

답변

2

저는 앞으로 나아갈 수있는 방법을 찾았습니다. 나는 여전히 더 나은 것을 찾고 있었지만, 그 동안이 해결책을 나누고 싶었습니다.

viewDidAppear 이전의 원래 로고보기의 크기와 위치를 재설정하고 b) 로고보기와 관련하여 나머지 창 요소 (예 : 사용자 이름 필드)를 배치하면 원래의 로고를 모두 교체하십시오.

대신 원본 로고의보기에 두 개의 하위보기를 추가했습니다. 첫 번째는 원래 로고를 덮을 UIView입니다 (새 로고가 투명성을 위해). 두 번째는 새로운 로고가있는 UIImageView입니다. 코드는 viewWillAppear이고 잘 작동하는 것으로 보입니다. (주요 단점은 새로운 로고는 동일한 크기와 옛 로고의 위치에 끝나는 것입니다.) 당신은 사용자 정의보기 컨트롤러를 논제 할 수 있도록 PFLoginViewController 서브 클래스를 생성 할 필요가

// Create a UIView to "cover up" original Parse logo 
UIView *blankRect=[[UIView alloc] initWithFrame:CGRectMake(0, 
                  0, 
                  self.logInView.logo.frame.size.width, 
                  self.logInView.logo.frame.size.height)]; 
[blankRect setBackgroundColor:self.logInView.backgroundColor]; 
[self.logInView.logo addSubview:blankRect]; 

// Add a subview with the new logo to the original logo's view  
UIImageView *newLogo=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"LoginLogoTight.png"]]; 
[newLogo setContentMode:UIViewContentModeScaleAspectFill]; 
[newLogo setFrame:CGRectMake(0,0,self.logInView.logo.frame.size.width,self.logInView.logo.frame.size.height)]; 
[self.logInView.logo addSubview:newLogo]; 
+1

완벽한이 작품을 바랍니다! 내 로고가 조금 더 컸기 때문에 CGRectMake (CGRectMake (0, -50)는 매력처럼 작동했습니다!)을 변경하여 newLogoView에서 위로 이동했습니다. 감사합니다. Rogare! –

2

. 당신이 프레임을 변경하려는 경우 당신은 무시하고 "loginview.logo"나는 튜토리얼이 정말 도움이되었다고

- (void)viewDidLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    [self.logInView.logo setFrame:CGRectMake(60.0, 12.0, 420.0, 68.0)]; 
} 

거기에 새로운 프레임을 설정해야합니다, 당신 https://www.parse.com/tutorials/login-and-signup-views

+1

멋지다! 완벽하게 작동하는 첫 번째 솔루션입니다! –

관련 문제