I am customizing a Parse login view and I created a blurred background with a library but now I can use UIVisualEffectView. Since I had a class as a delegate for PFLoginViewController
I decided to subclass UIVisualEffectView and make that my delegate. The issue is that not all of my login view is showing. I know that my frame is set correctly. Here is my code for a better idea of what I'm talking about.
-(id)initWithEffect:(UIVisualEffect *)effect {
self = [super initWithEffect:effect];
[self setUpUserViews];
return self;
}
- (void)setUpUserViews {
NSLog(@"Setting Up View");
CGRect size = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
//Initialize login and sign up views
_loginView = [[PFLogInViewController alloc] init];
_signUpView = [[PFSignUpViewController alloc] init];
//Set their delegates to this view controller
[_loginView setDelegate:self];
[_signUpView setDelegate:self];
//Set fields for sign up view
[_signUpView setFields:PFSignUpFieldsEmail | PFSignUpFieldsUsernameAndPassword | PFSignUpFieldsSignUpButton];
//Set sign up view for login view
[_loginView setSignUpController:_signUpView];
//Set up login view
_loginView.view.frame = size;
_loginView.view.backgroundColor = [UIColor clearColor];
[_loginView.logInView setLogo:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"banner.png"]]];
//Set Login Button
[_loginView.logInView.logInButton setBackgroundImage:[UIImage imageNamed:@"orange.png"] forState:UIControlStateNormal];
[_loginView.logInView.logInButton setBackgroundImage:[UIImage imageNamed:@"orangeDown.png"] forState:UIControlStateHighlighted];
//Set login text color
[_loginView.logInView.logInButton setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];
[_loginView.logInView.logInButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
//Set sign up button
[_loginView.logInView.signUpButton setBackgroundImage:[UIImage imageNamed:@"green.png"] forState:UIControlStateNormal];
[_loginView.logInView.signUpButton setBackgroundImage:[UIImage imageNamed:@"greenDown.png"] forState:UIControlStateHighlighted];
//Set sign up button text color
[_loginView.logInView.signUpButton setTitleColor:[UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:0.6] forState:UIControlStateNormal];
[_loginView.logInView.signUpButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
//Set dismiss button
[_loginView.logInView.dismissButton setImage:nil forState:UIControlStateNormal];
[_loginView.logInView.dismissButton setImage:nil forState:UIControlStateHighlighted];
[_loginView.logInView.dismissButton setBackgroundImage:nil forState:UIControlStateHighlighted];
[_loginView.logInView.dismissButton setBackgroundImage:nil forState:UIControlStateNormal];
[_loginView.logInView.dismissButton setBackgroundImage:[UIImage imageNamed:@"dismiss.png"] forState:UIControlStateHighlighted];
[_loginView.logInView.dismissButton setBackgroundImage:[UIImage imageNamed:@"dismiss.png"] forState:UIControlStateNormal];
//Set forgotten button
[_loginView.logInView.passwordForgottenButton setImage:[UIImage imageNamed:@"forgot.png"] forState:UIControlStateNormal];
[_loginView.logInView.passwordForgottenButton setImage:[UIImage imageNamed:@"forgot.png"] forState:UIControlStateHighlighted];
[_loginView.logInView.passwordForgottenButton setBackgroundImage:nil forState:UIControlStateNormal];
[_loginView.logInView.passwordForgottenButton setBackgroundImage:nil forState:UIControlStateHighlighted];
//Use custom method for showing sign up view
[_loginView.logInView.signUpButton removeTarget:nil action:NULL forControlEvents:UIControlEventAllEvents];
[_loginView.logInView.signUpButton addTarget:self action:@selector(customViewMethod) forControlEvents:UIControlEventTouchUpInside];
//Set up sign up view
_signUpView.signUpView.backgroundColor = [UIColor clearColor];
//Set sign up button
[_signUpView.signUpView.signUpButton setImage:[UIImage imageNamed:@"green.png"] forState:UIControlStateNormal];
[_signUpView.signUpView.signUpButton setImage:[UIImage imageNamed:@"greenPress.png"] forState:UIControlStateHighlighted];
[_signUpView.signUpView.signUpButton setBackgroundImage:nil forState:UIControlStateNormal | UIControlStateHighlighted];
//Present login view
[self.contentView addSubview:_loginView.view];
}
Here's a screenshot of what I'm getting. There is an X in the top left corner. That is part of the login view:
Here is a screenshot of what it is supposed to look like:
The problem has been solved. The issue was that things were being released from memory too soon which resulted in there being a nil
delegate.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.