JPSKeyboardLayoutGuide 0.0.2

JPSKeyboardLayoutGuide 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布时间最后发布2017年3月

JP Simard 维护。



  • 作者
  • JP Simard

JPSKeyboardLayoutGuide 允许您轻松使自动布局视图控制器对键盘有感知。想象一下,如果它随着键盘框架移动,它就像 bottomLayoutGuide

这使得在视图中垂直居中项目变得非常简单,当键盘出现/消失时它们保持居中。

安装

手动安装

JPSKeyboardLayoutGuide 文件夹拖入您的项目中。

使用方法

JPSKeyboardLayoutGuideUIViewController 的类别,因此对于您想要采用之前描述的行为的任何控制器,您必须在其各自的回调中覆盖并调用这些方法

- (void)jps_viewDidLoad;
- (void)jps_viewWillAppear:(BOOL)animated;
- (void)jps_viewDidDisappear:(BOOL)animated;

一个示例实现可能如下所示

#import "JPSKeyboardLayoutGuideViewController.h"

@interface LoginVC : UIViewController
@end

@implementation LoginVC

- (void)viewDidLoad {
    [super viewDidLoad];
    [self jps_viewDidLoad];    
    [self setupLoginField];
}

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self jps_viewWillAppear:animated];
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self jps_viewDidDisappear:animated];
}

- (void)setupLoginField {
    self.loginField = [[UITextField alloc] init];
    self.loginField.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:self.loginField];
    self.loginField.placeholder = @"username";

    // Constraints
    NSLayoutConstraint *centerX = [NSLayoutConstraint constraintWithItem:self.loginField
                                                               attribute:NSLayoutAttributeCenterX
                                                               relatedBy:NSLayoutRelationEqual
                                                                  toItem:self.view
                                                               attribute:NSLayoutAttributeCenterX
                                                              multiplier:1.0f
                                                                constant:0.0f];
    NSLayoutConstraint *bottom = [NSLayoutConstraint constraintWithItem:self.loginField
                                                              attribute:NSLayoutAttributeBottom
                                                              relatedBy:NSLayoutRelationEqual
                                                                 toItem:self.keyboardLayoutGuide
                                                              attribute:NSLayoutAttributeTop
                                                             multiplier:1.0f
                                                               constant:-10.0f];
    [self.view addConstraints:@[centerX, bottom]];
}


@end

在导入 JPSKeyboardLayoutGuide 时,您会看到 keyboardLayoutGuidetopLayoutGuidebottomLayoutGuide。所有这些指南以相同的方式表现。

有关布局指南的更多详细信息,请参阅 Apple 的有关 UILayoutSupport 协议 的文档

许可

MIT 许可。