首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子类UIVisualEffectView的问题

子类UIVisualEffectView的问题
EN

Stack Overflow用户
提问于 2014-08-01 02:22:58
回答 1查看 754关注 0票数 2

我正在自定义一个Parse登录视图,我用一个库创建了一个模糊的背景,但是现在我可以使用UIVisualEffectView了。由于我有一个类作为PFLoginViewController的委托,所以我决定将UIVisualEffectView子类设置为我的委托。问题是,并不是我的登录视图都显示了。我知道我的框架设置正确。这是我对我说的话有更好的理解的代码。

代码语言:javascript
复制
-(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];
}

这是我得到的截图。左上角有一个X。这是登录视图的一部分:

下面是它应该是什么样子的截图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-29 19:52:33

这个问题已经解决了。问题是,内存释放得太快,导致出现了一个nil代表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25071925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档