Forráskód Böngészése

1.修改iOS DatePicker。

Pen Li 7 éve
szülő
commit
3560767bf5

+ 14 - 20
common/DatePicker/Base.lproj/date.storyboard

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -35,23 +35,17 @@
                                 </constraints>
                             </view>
                             <datePicker contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="date" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="p97-x3-1d5">
-                                <rect key="frame" x="0.0" y="65" width="375" height="238"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="238" id="r3b-tc-qku"/>
-                                </constraints>
+                                <rect key="frame" x="0.0" y="65" width="375" height="542"/>
                                 <date key="date" timeIntervalSinceReferenceDate="557120579.94449699">
                                     <!--2018-08-28 03:42:59 +0000-->
                                 </date>
                             </datePicker>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cBT-vV-Li8">
-                                <rect key="frame" x="0.0" y="303" width="375" height="41"/>
+                                <rect key="frame" x="0.0" y="607" width="375" height="60"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LjX-WA-ZSH">
-                                        <rect key="frame" x="188" y="1" width="187" height="40"/>
+                                        <rect key="frame" x="188" y="0.5" width="187" height="59.5"/>
                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="40" id="Tli-gy-iyX"/>
-                                        </constraints>
                                         <state key="normal" title="Set">
                                             <color key="titleColor" red="1" green="0.1047433005" blue="0.075207091899999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                         </state>
@@ -60,11 +54,8 @@
                                         </connections>
                                     </button>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7Bd-bE-hfF">
-                                        <rect key="frame" x="0.0" y="1" width="187" height="40"/>
+                                        <rect key="frame" x="0.0" y="0.5" width="187" height="59.5"/>
                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="40" id="Ug3-7k-Rpy"/>
-                                        </constraints>
                                         <state key="normal" title="Cancel"/>
                                         <connections>
                                             <action selector="cancelBtnClick:" destination="UZ8-Ru-lSY" eventType="touchUpInside" id="yh6-LK-cR2"/>
@@ -73,17 +64,19 @@
                                 </subviews>
                                 <color key="backgroundColor" red="0.9322579339" green="0.9322579339" blue="0.9322579339" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="41" id="0ED-vX-XfU"/>
+                                    <constraint firstAttribute="height" constant="60" id="0ED-vX-XfU"/>
                                     <constraint firstItem="LjX-WA-ZSH" firstAttribute="leading" secondItem="7Bd-bE-hfF" secondAttribute="trailing" constant="1" id="39B-8l-8He"/>
-                                    <constraint firstItem="LjX-WA-ZSH" firstAttribute="top" secondItem="cBT-vV-Li8" secondAttribute="top" constant="1" id="CUE-qo-Ed6"/>
+                                    <constraint firstItem="7Bd-bE-hfF" firstAttribute="top" secondItem="LjX-WA-ZSH" secondAttribute="top" id="6ds-ja-G0e"/>
+                                    <constraint firstItem="LjX-WA-ZSH" firstAttribute="top" secondItem="cBT-vV-Li8" secondAttribute="top" constant="0.5" id="CUE-qo-Ed6"/>
                                     <constraint firstItem="LjX-WA-ZSH" firstAttribute="width" secondItem="7Bd-bE-hfF" secondAttribute="width" id="d7B-qa-xgc"/>
                                     <constraint firstAttribute="trailing" secondItem="LjX-WA-ZSH" secondAttribute="trailing" id="dTk-fs-BGS"/>
-                                    <constraint firstItem="7Bd-bE-hfF" firstAttribute="top" secondItem="cBT-vV-Li8" secondAttribute="top" constant="1" id="ifC-kU-vkx"/>
+                                    <constraint firstItem="LjX-WA-ZSH" firstAttribute="height" secondItem="cBT-vV-Li8" secondAttribute="height" constant="-0.5" id="t9K-rt-Dys"/>
                                     <constraint firstItem="7Bd-bE-hfF" firstAttribute="leading" secondItem="cBT-vV-Li8" secondAttribute="leading" id="uHP-vF-oUL"/>
+                                    <constraint firstItem="7Bd-bE-hfF" firstAttribute="height" secondItem="LjX-WA-ZSH" secondAttribute="height" id="yjN-Es-jDN"/>
                                 </constraints>
                             </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ei2-z6-v8t">
-                                <rect key="frame" x="0.0" y="303" width="375" height="0.5"/>
+                                <rect key="frame" x="0.0" y="607" width="375" height="0.5"/>
                                 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="0.5" id="ShW-cR-veE"/>
@@ -97,17 +90,18 @@
                             <constraint firstItem="O9N-iu-Ek5" firstAttribute="leading" secondItem="xiG-YA-3Yu" secondAttribute="leading" id="2lx-uQ-mdE"/>
                             <constraint firstItem="xiG-YA-3Yu" firstAttribute="trailing" secondItem="cBT-vV-Li8" secondAttribute="trailing" id="6E2-Nw-A2p"/>
                             <constraint firstItem="cBT-vV-Li8" firstAttribute="leading" secondItem="xiG-YA-3Yu" secondAttribute="leading" id="6J3-31-uJT"/>
+                            <constraint firstItem="Ei2-z6-v8t" firstAttribute="top" secondItem="p97-x3-1d5" secondAttribute="bottom" id="DWe-fJ-Aqd"/>
                             <constraint firstItem="Fbi-R0-4N2" firstAttribute="top" secondItem="xiG-YA-3Yu" secondAttribute="top" constant="5" id="Nkn-02-9dp"/>
                             <constraint firstItem="xiG-YA-3Yu" firstAttribute="trailing" secondItem="Fbi-R0-4N2" secondAttribute="trailing" constant="5" id="Xk4-1K-DGL"/>
                             <constraint firstItem="xiG-YA-3Yu" firstAttribute="trailing" secondItem="O9N-iu-Ek5" secondAttribute="trailing" id="Z5t-sR-OiV"/>
                             <constraint firstItem="O9N-iu-Ek5" firstAttribute="top" secondItem="Fbi-R0-4N2" secondAttribute="bottom" constant="-1" id="dKu-nW-qid"/>
                             <constraint firstItem="p97-x3-1d5" firstAttribute="trailing" secondItem="xiG-YA-3Yu" secondAttribute="trailing" id="il2-tV-eIZ"/>
-                            <constraint firstItem="cBT-vV-Li8" firstAttribute="top" secondItem="p97-x3-1d5" secondAttribute="bottom" id="pLe-ib-Aey"/>
                             <constraint firstItem="Ei2-z6-v8t" firstAttribute="leading" secondItem="xiG-YA-3Yu" secondAttribute="leading" id="pqS-vs-71I"/>
                             <constraint firstItem="Fbi-R0-4N2" firstAttribute="leading" secondItem="xiG-YA-3Yu" secondAttribute="leading" constant="5" id="prt-yY-H7F"/>
                             <constraint firstItem="xiG-YA-3Yu" firstAttribute="trailing" secondItem="Ei2-z6-v8t" secondAttribute="trailing" id="qNA-vg-KJz"/>
                             <constraint firstItem="Ei2-z6-v8t" firstAttribute="top" secondItem="cBT-vV-Li8" secondAttribute="top" id="sY1-6d-EqB"/>
                             <constraint firstItem="p97-x3-1d5" firstAttribute="leading" secondItem="xiG-YA-3Yu" secondAttribute="leading" id="tbN-9P-LLx"/>
+                            <constraint firstItem="xiG-YA-3Yu" firstAttribute="bottom" secondItem="cBT-vV-Li8" secondAttribute="bottom" id="vjH-NS-1KI"/>
                         </constraints>
                         <viewLayoutGuide key="safeArea" id="xiG-YA-3Yu"/>
                     </view>

+ 4 - 2
common/DatePicker/RADatePickerViewController.h

@@ -6,12 +6,14 @@
 //  Copyright © 2018年 USAI. All rights reserved.
 //
 
-#import "RABaseViewController.h"
+#import <UIKit/UIKit.h>
 
-@interface RADatePickerViewController : RABaseViewController
+@interface RADatePickerViewController : UIViewController
 
 + (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title withSetBlk:(void(^)(NSDate *date))blk;
 
 + (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode withSetBlk:(void(^)(NSDate *date))blk;
 
++ (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode defaultDate:(NSDate *)date withSetBlk:(void(^)(NSDate *date))blk;
+
 @end

+ 20 - 3
common/DatePicker/RADatePickerViewController.m

@@ -16,11 +16,16 @@
 
 @property (nonatomic,copy) void(^blk)(NSDate *);
 @property (nonatomic,assign) UIDatePickerMode datePickerMode;
+@property (nonatomic,strong) NSDate *date;
 
 @end
 
 @implementation RADatePickerViewController
 
++ (NSString *)storyboardID {
+    return NSStringFromClass([self class]);
+}
+
 + (instancetype)viewControllerFromStoryboard {
     RADatePickerViewController *datePickerVC = [[UIStoryboard storyboardWithName:@"date" bundle:nil] instantiateViewControllerWithIdentifier:[self storyboardID]];
     
@@ -28,7 +33,7 @@
     return datePickerVC;
 }
 
-+ (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode withSetBlk:(void(^)(NSDate *date))blk {
++ (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode defaultDate:(NSDate *)date withSetBlk:(void(^)(NSDate *date))blk {
     
     if (!viewController) {
         return;
@@ -39,16 +44,22 @@
     datePickerVC.title = title;
     datePickerVC.blk = blk;
     datePickerVC.datePickerMode = mode;
+    datePickerVC.date = date;
     
     datePickerVC.transitioningDelegate = datePickerVC;
     datePickerVC.modalPresentationStyle = UIModalPresentationCustom;
     
-//    CGFloat width = [UIScreen mainScreen].bounds.size.width - 40;
-    datePickerVC.preferredContentSize = CGSizeMake(300, 325);
+//    //    CGFloat width = [UIScreen mainScreen].bounds.size.width - 40;
+//    datePickerVC.preferredContentSize = CGSizeMake(300, 325);
     
     [viewController presentViewController:datePickerVC animated:YES completion:nil];
 }
 
++ (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title dateMode:(UIDatePickerMode)mode withSetBlk:(void(^)(NSDate *date))blk {
+    
+    [self presentDatePicker:viewController title:title dateMode:mode defaultDate:[NSDate date] withSetBlk:blk];
+}
+
 + (void)presentDatePicker:(UIViewController *)viewController title:(NSString *)title withSetBlk:(void(^)(NSDate *date))blk {
     
     [self presentDatePicker:viewController title:title dateMode:UIDatePickerModeDate withSetBlk:blk];
@@ -62,7 +73,13 @@
     self.view.layer.masksToBounds = YES;
     
     self.datePicker.datePickerMode = self.datePickerMode;
+    if (self.date) {
+        self.datePicker.date = self.date;
+    }
     self.titleLabel.text = self.title;
+    
+    CGFloat width = [UIScreen mainScreen].bounds.size.width - 40;
+    self.preferredContentSize = CGSizeMake(width, width + 25);
 }
 
 - (void)didReceiveMemoryWarning {