3

最初は英語が下手でごめんなさい!

私のアプリではUIViewControllerがあり、UIViewはsubViewLogin内でsubViewLoginと呼ばれます。2つのUITextFieldはユーザー名とパスワードと呼ばれます。アプリを実行すると、subViewLoginはUIViewAnimationCurveLinearによって位置に移動します。なんで?また、subViewLoginが元の位置に戻るのを防ぐにはどうすればよいですか?

これが私のコードです。

//LoginViewController.h
#import <UIKit/UIKit.h>

@interface LoginViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *username;
@property (weak, nonatomic) IBOutlet UITextField *password;
@property (weak, nonatomic) IBOutlet UIImageView *background;
@property (weak, nonatomic) IBOutlet UIImageView *logoEnergy;
@property (weak, nonatomic) IBOutlet UIImageView *logoKmutl;
@property (weak, nonatomic) IBOutlet UIImageView *logoProjectname;
@property (weak, nonatomic) IBOutlet UIView *subviewLogin;

- (void)advoidSubviewFromKeyboard;
- (IBAction)usernameAndPasswordBeginEdit;
- (IBAction)dismissKeyboard;
@end

//LoginViewController.m
#import "LoginViewController.h"
@implementation LoginViewController

const float keyBoardPortraitHeight = 216;
const float keyBoardLandscapeHeight = 162;

@synthesize username, password, background, logoEnergy, logoKmutl, logoProjectname;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
    UIView *subview = self.subviewLogin;
    subview.frame = CGRectMake(subview.frame.origin.x, self.view.frame.size.height, subview.frame.size.width, subview.frame.size.height);
}

- (void)viewDidAppear:(BOOL)animated
{
    [UIView
    animateWithDuration:0.3
    delay: 0.0
    options: UIViewAnimationCurveLinear
    animations:^{
        UIView *subview = self.subviewLogin;
        subview.frame = CGRectMake(subview.frame.origin.x, self.view.frame.size.height-subview.frame.size.height-30, subview.frame.size.width, subview.frame.size.height);
    }
    completion:^(BOOL finished){

    }
    ];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)advoidSubviewFromKeyboard
{
    [UIView
     animateWithDuration:0.3
     delay: 0.0
     options: UIViewAnimationCurveLinear
     animations:^{
         self.view.frame = CGRectMake(self.view.frame.origin.x, -keyBoardPortraitHeight+30, self.view.frame.size.width, self.view.frame.size.height);
     }
     completion:^(BOOL finished){

     }
     ];
}

- (IBAction)usernameAndPasswordBeginEdit
{
    [self advoidSubviewFromKeyboard];
}

- (IBAction)dismissKeyboard
{
    NSLog(@"dismiss");
    //[self.username becomeFirstResponder];
    //[self.username resignFirstResponder];
    [self.subviewLogin endEditing:YES];
    //[self.view endEditing:YES];
}
@end
4

1 に答える 1