From 4f884921dc898db30512dc2b11e95a97935c90be Mon Sep 17 00:00:00 2001 From: wqyfavor Date: Tue, 11 Dec 2018 23:58:27 +0800 Subject: [PATCH] [iOS] Add upriseOffset for edit component. --- .../WeexSDK/Sources/Component/WXEditComponent.mm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm index 01866b7891..69bc7ae156 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm +++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm @@ -30,6 +30,9 @@ #import "WXComponent+Layout.h" @interface WXEditComponent() +{ + CGFloat _upriseOffset; // additional space when edit is lifted by keyboard +} //@property (nonatomic, strong) WXTextInputView *inputView; @property (nonatomic, strong) WXDatePickerManager *datePickerManager; @@ -108,6 +111,12 @@ - (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDict _disabled = [attributes[@"disabled"] boolValue]; _value = [WXConvert NSString:attributes[@"value"]]?:@""; _placeholderString = [WXConvert NSString:attributes[@"placeholder"]]?:@""; + _upriseOffset = 20; // 20 for better appearance + + if (attributes[@"upriseOffset"]) { + _upriseOffset = [WXConvert CGFloat:attributes[@"upriseOffset"]]; + } + if(attributes[@"type"]) { _inputType = [WXConvert NSString:attributes[@"type"]]; _attr = attributes; @@ -460,6 +469,9 @@ - (void)updateAttributes:(NSDictionary *)attributes _rows = 2; [self setRows:_rows]; } + if (attributes[@"upriseOffset"]) { + _upriseOffset = [WXConvert CGFloat:attributes[@"upriseOffset"]]; + } } #pragma mark - upate styles @@ -702,7 +714,7 @@ - (void)setViewMovedUp:(BOOL)movedUp CGRect rootViewFrame = rootView.frame; CGRect inputFrame = [self.view.superview convertRect:self.view.frame toView:rootView]; if (movedUp) { - CGFloat offset = inputFrame.origin.y-(rootViewFrame.size.height-_keyboardSize.height-inputFrame.size.height) + 20; + CGFloat offset = inputFrame.origin.y-(rootViewFrame.size.height-_keyboardSize.height-inputFrame.size.height) + _upriseOffset; if (offset > 0) { rect = (CGRect){ .origin.x = 0.f,