Sfoglia il codice sorgente

1.修改CommonEditor,创建Range类型Item,实现其功能。

Pen Li 8 anni fa
parent
commit
6ccc89f4f8

+ 34 - 0
RedAnt ERP Mobile/common/CommonEditor/CommonEditorRangeCell.h

@@ -0,0 +1,34 @@
+//
+//  CommonEditorRangeCell.h
+//  RedAnt Mobile
+//
+//  Created by Jack on 2017/11/13.
+//  Copyright © 2017年 Ray. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef NS_ENUM(NSInteger, CommonEditorRangeType) {
+    CommonEditorRangeTypeDefault,
+    CommonEditorRangeTypeDate
+};
+
+@class CommonEditorRangeCell;
+@protocol CommonEditorRangeDelegate <NSObject>
+
+@optional
+- (void)commonEditorRangeCell:(CommonEditorRangeCell *)cell didChangeMinValue:(NSString *)minValue maxValue:(NSString *)maxValue atIndexPath:(NSIndexPath *)indexPath;
+
+@end
+
+@interface CommonEditorRangeCell : UITableViewCell
+
+@property (nonatomic,assign) UIKeyboardType keyboardType;
+@property (nonatomic,assign) CommonEditorRangeType type;
+@property (nonatomic,weak) id<CommonEditorRangeDelegate> delegate;
+@property (nonatomic,strong) NSIndexPath *indexPath;
+
+- (void)setMinValue:(NSString *)min maxValue:(NSString *)max;
+- (void)setTitle:(NSString *)title;
+
+@end

+ 192 - 0
RedAnt ERP Mobile/common/CommonEditor/CommonEditorRangeCell.m

@@ -0,0 +1,192 @@
+//
+//  CommonEditorRangeCell.m
+//  RedAnt Mobile
+//
+//  Created by Jack on 2017/11/13.
+//  Copyright © 2017年 Ray. All rights reserved.
+//
+
+#import "CommonEditorRangeCell.h"
+#import "DatePickerViewController.h"
+
+
+@interface CommonEditorRangeCell ()<UITextFieldDelegate>
+
+@property (strong, nonatomic) IBOutlet UILabel *titleLabel;
+@property (strong, nonatomic) IBOutlet UITextField *minField;
+@property (strong, nonatomic) IBOutlet UITextField *maxField;
+
+@end
+
+
+@implementation CommonEditorRangeCell
+
+- (void)awakeFromNib {
+    [super awakeFromNib];
+    // Initialization code
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+#pragma mark - Setter
+
+- (void)setKeyboardType:(UIKeyboardType)keyboardType {
+    self.minField.keyboardType = keyboardType;
+    self.maxField.keyboardType = keyboardType;
+}
+
+- (void)setType:(CommonEditorRangeType)type {
+    _type = type;
+}
+
+- (void)setMinValue:(NSString *)min maxValue:(NSString *)max {
+    self.minField.text = min;
+    self.maxField.text = max;
+}
+
+- (void)setTitle:(NSString *)title {
+    self.titleLabel.text = title;
+}
+
+#pragma mark - TextField Delegate
+
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+    [textField resignFirstResponder];
+    return YES;
+}
+
+- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
+    return YES;
+}
+
+- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
+    if (self.type == CommonEditorRangeTypeDate) {
+        // 显示DatePicker
+        [self showDatePickerWithField:textField];
+        return NO;
+    }
+    return YES;
+}
+
+- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
+    // 判断min是否大于max
+    if (self.type == CommonEditorRangeTypeDate) {
+        
+    } else {
+        NSString *max_str = self.maxField.text;
+        NSString *min_str = self.minField.text;
+        float min = 0;
+        float max = MAXFLOAT;
+        
+        if (textField == self.minField) {
+            min = [min_str floatValue];
+            max_str = [max_str stringByReplacingOccurrencesOfString:@" " withString:@""];
+            if (max_str != nil && max_str.length > 1) {
+                max = [max_str floatValue];
+            }
+            
+        } else if (textField == self.maxField) {
+            max = [max_str floatValue];
+            min_str = [min_str stringByReplacingOccurrencesOfString:@" " withString:@""];
+            if (min_str != nil && min_str.length > 1) {
+                min = [min_str floatValue];
+            }
+            
+        }
+        
+        
+        if (min > max) {
+            [self showAlert];
+            return NO;
+        }
+        if (self.delegate && [self.delegate respondsToSelector:@selector(commonEditorRangeCell:didChangeMinValue:maxValue:atIndexPath:)]) {
+            [self.delegate commonEditorRangeCell:self didChangeMinValue:self.minField.text maxValue:self.maxField.text atIndexPath:self.indexPath];
+        }
+    }
+    
+    return YES;
+}
+
+#pragma mark - Private
+
+- (UIViewController *)viewController {
+    for (UIView* next = [self superview]; next; next = next.superview) {
+        UIResponder *nextResponder = [next nextResponder];
+        if ([nextResponder isKindOfClass:[UIViewController class]]) {
+            return (UIViewController *)nextResponder;
+        }
+    }
+    return nil;
+}
+
+- (void)showAlert {
+    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Warning" message:@"minimum can't larger than maximum" preferredStyle:UIAlertControllerStyleAlert];
+    UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDestructive handler:nil];
+    [alert addAction:action];
+    [[self viewController] presentViewController:alert animated:YES completion:nil];
+}
+
+- (void)showDatePickerWithField:(UITextField *)field {
+    
+    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+    [dateFormatter setDefaultDate:[NSDate date]];
+    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
+    
+    DatePickerViewController* dpvc =[ [UIStoryboard storyboardWithName:@"CommonEditor" bundle:nil] instantiateViewControllerWithIdentifier:@"DatePickerViewController"];
+
+    __weak UITextField *weakField = field;
+    __weak typeof(self) weakSelf = self;
+    
+    dpvc.pickerMode = UIDatePickerModeDate;
+    dpvc.date = [dateFormatter dateFromString:[dateFormatter stringFromDate:dateFormatter.defaultDate]];
+    dpvc.formatter = dateFormatter;
+    dpvc.blk_Set = ^(NSString *date) {
+        NSString *min = @"";
+        NSString *max = @"";
+        // 判断min是否大于max
+        if (weakField == weakSelf.minField) {
+            min = date;
+            max = [weakSelf.maxField.text stringByReplacingOccurrencesOfString:@" " withString:@""];
+            if (max != nil && max.length > 1) {
+                
+                NSTimeInterval min_interval = [dateFormatter dateFromString:min].timeIntervalSince1970;
+                NSTimeInterval max_interval = [dateFormatter dateFromString:max].timeIntervalSince1970;
+                if (min_interval > max_interval) {
+                    [weakSelf showAlert];
+                    return ;
+                }
+            }
+            
+        } else if (weakField == weakSelf.maxField) {
+            min = [weakSelf.minField.text stringByReplacingOccurrencesOfString:@" " withString:@""];
+            max = date;
+            if (min != nil && min.length > 1) {
+                NSTimeInterval min_interval = [dateFormatter dateFromString:min].timeIntervalSince1970;
+                NSTimeInterval max_interval = [dateFormatter dateFromString:max].timeIntervalSince1970;
+                if (min_interval > max_interval) {
+                    [weakSelf showAlert];
+                    return ;
+                }
+            }
+        }
+        
+        // max不小于min
+        [weakField setText:date];
+        if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(commonEditorRangeCell:didChangeMinValue:maxValue:atIndexPath:)]) {
+            [weakSelf.delegate commonEditorRangeCell:weakSelf didChangeMinValue:min maxValue:max atIndexPath:weakSelf.indexPath];
+        }
+    };
+    if (field == self.minField) {
+        dpvc.title = @"Select MinDate";
+    } else if (field == self.maxField) {
+        dpvc.title = @"Select MaxDate";
+    }
+    
+    [[self viewController].navigationController pushViewController:dpvc animated:true];
+}
+
+@end

+ 1 - 0
RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.h

@@ -108,6 +108,7 @@
 
 #pragma mark - ==========================
 
+@property (nonatomic,strong) IBOutlet UIView *tableContainer;
 
 #pragma mark - request Editor
 -(NSDictionary*)request_Editor:(NSString*) request_url params:(NSMutableDictionary*)params;

+ 66 - 12
RedAnt ERP Mobile/common/CommonEditor/CommonEditorViewController.m

@@ -46,6 +46,7 @@
 #import "FileCache.h"
 #import "RAConvertor.h"
 #import "EnumSelectAndSortViewController.h"
+#import "CommonEditorRangeCell.h"
 
 
 
@@ -55,7 +56,7 @@
 
 @implementation subitem_data
 @end
-@interface CommonEditorViewController ()
+@interface CommonEditorViewController ()<CommonEditorRangeDelegate>
 
 
 @end
@@ -67,48 +68,48 @@
     
     self.editorTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
     self.editorTable.translatesAutoresizingMaskIntoConstraints = NO;
-    [self.view addSubview:self.editorTable];
-    [self.view sendSubviewToBack:self.editorTable];
+    [self.tableContainer addSubview:self.editorTable];
+    [self.tableContainer sendSubviewToBack:self.editorTable];
     
     NSLayoutConstraint *top_constraint = [NSLayoutConstraint constraintWithItem:self.editorTable
                                                                       attribute:NSLayoutAttributeTop
                                                                       relatedBy:NSLayoutRelationEqual
-                                                                         toItem:self.view
+                                                                         toItem:self.tableContainer
                                                                       attribute:NSLayoutAttributeTop
                                                                      multiplier:1
                                                                        constant:0];
     self.tb_top_constraint = top_constraint;
-    [self.view addConstraint:top_constraint];
+    [self.tableContainer addConstraint:top_constraint];
     
     NSLayoutConstraint *left_constraint = [NSLayoutConstraint constraintWithItem:self.editorTable
                                                                        attribute:NSLayoutAttributeLeft
                                                                        relatedBy:NSLayoutRelationEqual
-                                                                          toItem:self.view
+                                                                          toItem:self.tableContainer
                                                                        attribute:NSLayoutAttributeLeft
                                                                       multiplier:1
                                                                         constant:0];
     self.tb_left_constraint = left_constraint;
-    [self.view addConstraint:left_constraint];
+    [self.tableContainer addConstraint:left_constraint];
     
     NSLayoutConstraint *bottom_constraint = [NSLayoutConstraint constraintWithItem:self.editorTable
                                                                          attribute:NSLayoutAttributeBottom
                                                                          relatedBy:NSLayoutRelationEqual
-                                                                            toItem:self.view
+                                                                            toItem:self.tableContainer
                                                                          attribute:NSLayoutAttributeBottom
                                                                         multiplier:1
                                                                           constant:0];
     self.tb_bottom_constraint = bottom_constraint;
-    [self.view addConstraint:bottom_constraint];
+    [self.tableContainer addConstraint:bottom_constraint];
     
     NSLayoutConstraint *right_constraint = [NSLayoutConstraint constraintWithItem:self.editorTable
                                                                         attribute:NSLayoutAttributeRight
                                                                         relatedBy:NSLayoutRelationEqual
-                                                                           toItem:self.view
+                                                                           toItem:self.tableContainer
                                                                         attribute:NSLayoutAttributeRight
                                                                        multiplier:1
                                                                          constant:0];
     self.tb_right_constraint = right_constraint;
-    [self.view addConstraint:right_constraint];
+    [self.tableContainer addConstraint:right_constraint];
     
     
     
@@ -132,7 +133,7 @@
     [self.editorTable registerNib:[UINib nibWithNibName:@"Phone_Signature_Cell" bundle:nil] forCellReuseIdentifier:@"CommonEditorCellSignature"];
     [self.editorTable registerNib:[UINib nibWithNibName:@"Phone_Switch_Cell" bundle:nil] forCellReuseIdentifier:@"CommonEditorCellSwitch"];
     [self.editorTable registerNib:[UINib nibWithNibName:@"Phone_TextView_Cell" bundle:nil] forCellReuseIdentifier:@"CommonEditorCellTextView"];
-    
+    [self.editorTable registerNib:[UINib nibWithNibName:@"Phone_Range_Cell" bundle:nil] forCellReuseIdentifier:@"CommonEditorRangeCell"];
 }
 
 - (void)setupEditorTable {
@@ -3925,6 +3926,31 @@
             // CommonEditorCellSignature* cell = (CommonEditorCellSignature*) [self.editorTable cellForRowAtIndexPath:indexPath];
             //cell.imageviewSignature.image = image;
         }
+        else if ([control isEqualToString:@"range"]) {
+        
+            NSString *type = [item_json objectForKey:@"type"];
+            NSString *keyboard = [item_json objectForKey:@"keyboard"];
+            NSString *title = [item_json objectForKey:@"aname"];
+            NSString *min = [item_json objectForKey:@"min_value"];
+            NSString *max = [item_json objectForKey:@"max_value"];
+            
+            CommonEditorRangeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CommonEditorRangeCell" forIndexPath:indexPath];
+            cell.indexPath = indexPath;
+            cell.delegate = self;
+            [cell setTitle:title];
+            [cell setMinValue:min maxValue:max];
+            if ([type isEqualToString:@"date"]) {
+                [cell setType:CommonEditorRangeTypeDate];
+            } else {
+                [cell setType:CommonEditorRangeTypeDefault];
+            }
+            if([keyboard isEqualToString:@"number"]) {
+                [cell setKeyboardType:UIKeyboardTypeDecimalPad];
+            } else {
+                [cell setKeyboardType:UIKeyboardTypeDefault];
+            }
+            return cell;
+        }
         else
         {
             CellIdentifier = @"CommonEditorCellEdit";
@@ -5799,7 +5825,35 @@
     //  [self moveInputBarWithKeyboardHeight:0.0 withDuration:animationDuration];
 }
 
+#pragma mark - RageCell Delegate
 
+- (void)commonEditorRangeCell:(CommonEditorRangeCell *)cell didChangeMinValue:(NSString *)minValue maxValue:(NSString *)maxValue atIndexPath:(NSIndexPath *)indexPath{
+    if (indexPath == nil) {
+        if (cell != nil) {
+            indexPath = [self.editorTable indexPathForCell:cell];
+        } else {
+            return;
+        }
+        
+    }
+    
+    if (indexPath == nil) {
+        return;
+    }
+    NSString *section_key = [NSString stringWithFormat:@"section_%ld",indexPath.section];
+    NSString *item_key = [NSString stringWithFormat:@"item_%ld",indexPath.row];
+    
+    NSMutableDictionary *section_json = [[self.content_data_download objectForKey:section_key] mutableCopy];
+    NSMutableDictionary *item_json = [((NSMutableArray*)self.content_data_control[indexPath.section])[indexPath.row] mutableCopy];
+    
+    [item_json setObject:minValue forKey:@"min_value"];
+    [item_json setObject:maxValue forKey:@"max_value"];
+    
+    [section_json setObject:item_json forKey:item_key];
+    [self.content_data_download setObject:section_json forKey:section_key];
+    self.content_data_control = [self translate_json:self.content_data_download changed: self.changed_data];
+    
+}
 
 @end
 

+ 113 - 0
RedAnt ERP Mobile/common/CommonEditor/Phone_Range_Cell.xib

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" 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="13527"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="CommonEditorRangeCell" rowHeight="80" id="aJD-4w-cyc" customClass="CommonEditorRangeCell">
+            <rect key="frame" x="0.0" y="0.0" width="357" height="100"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="aJD-4w-cyc" id="9H1-uc-YO6">
+                <rect key="frame" x="0.0" y="0.0" width="357" height="99.5"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F7m-IY-bAy">
+                        <rect key="frame" x="10" y="10" width="42" height="25"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="25" id="iud-4J-xs8"/>
+                        </constraints>
+                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                        <nil key="textColor"/>
+                        <nil key="highlightedColor"/>
+                    </label>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N9F-9d-jEW">
+                        <rect key="frame" x="0.0" y="49" width="119" height="50"/>
+                        <subviews>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="minimum" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="OLV-dS-Zk9">
+                                <rect key="frame" x="5" y="10" width="109" height="30"/>
+                                <nil key="textColor"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                                <connections>
+                                    <outlet property="delegate" destination="aJD-4w-cyc" id="9UU-L5-nUZ"/>
+                                </connections>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstAttribute="trailing" secondItem="OLV-dS-Zk9" secondAttribute="trailing" constant="5" id="Fqz-G9-1R4"/>
+                            <constraint firstItem="OLV-dS-Zk9" firstAttribute="leading" secondItem="N9F-9d-jEW" secondAttribute="leading" constant="5" id="LbX-7B-UuC"/>
+                            <constraint firstItem="OLV-dS-Zk9" firstAttribute="centerX" secondItem="N9F-9d-jEW" secondAttribute="centerX" id="RXf-pB-fN6"/>
+                            <constraint firstAttribute="height" constant="50" id="sko-8b-xWH"/>
+                            <constraint firstItem="OLV-dS-Zk9" firstAttribute="centerY" secondItem="N9F-9d-jEW" secondAttribute="centerY" id="uzW-kP-fe3"/>
+                        </constraints>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Q11-bU-Foq">
+                        <rect key="frame" x="119" y="49" width="119" height="50"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="between" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1PI-fx-jjn">
+                                <rect key="frame" x="-0.5" y="0.5" width="119" height="50"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="1PI-fx-jjn" firstAttribute="centerX" secondItem="Q11-bU-Foq" secondAttribute="centerX" id="g8z-SD-r0y"/>
+                            <constraint firstItem="1PI-fx-jjn" firstAttribute="centerY" secondItem="Q11-bU-Foq" secondAttribute="centerY" id="ls2-kR-YQf"/>
+                            <constraint firstItem="1PI-fx-jjn" firstAttribute="height" secondItem="Q11-bU-Foq" secondAttribute="height" id="p3c-EA-z2W"/>
+                            <constraint firstItem="1PI-fx-jjn" firstAttribute="width" secondItem="Q11-bU-Foq" secondAttribute="width" id="pIX-Lk-kqx"/>
+                        </constraints>
+                    </view>
+                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rOL-53-jIq">
+                        <rect key="frame" x="238" y="49" width="119" height="50"/>
+                        <subviews>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="maximum" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="KbR-4N-5h0">
+                                <rect key="frame" x="5" y="10" width="109" height="30"/>
+                                <nil key="textColor"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                                <connections>
+                                    <outlet property="delegate" destination="aJD-4w-cyc" id="Ocj-RG-iEh"/>
+                                </connections>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="KbR-4N-5h0" firstAttribute="centerY" secondItem="rOL-53-jIq" secondAttribute="centerY" id="Vsk-kp-hBo"/>
+                            <constraint firstAttribute="trailing" secondItem="KbR-4N-5h0" secondAttribute="trailing" constant="5" id="eou-0I-5tB"/>
+                            <constraint firstItem="KbR-4N-5h0" firstAttribute="leading" secondItem="rOL-53-jIq" secondAttribute="leading" constant="5" id="lmQ-hA-BiX"/>
+                            <constraint firstItem="KbR-4N-5h0" firstAttribute="centerX" secondItem="rOL-53-jIq" secondAttribute="centerX" id="pBa-Lq-rVp"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="rOL-53-jIq" secondAttribute="trailing" id="0vF-B6-YXR"/>
+                    <constraint firstAttribute="bottom" secondItem="N9F-9d-jEW" secondAttribute="bottom" id="2id-Sv-R7P"/>
+                    <constraint firstItem="Q11-bU-Foq" firstAttribute="height" secondItem="N9F-9d-jEW" secondAttribute="height" id="C7p-gp-g1c"/>
+                    <constraint firstItem="rOL-53-jIq" firstAttribute="width" secondItem="Q11-bU-Foq" secondAttribute="width" id="HX1-uj-OmR"/>
+                    <constraint firstItem="N9F-9d-jEW" firstAttribute="leading" secondItem="9H1-uc-YO6" secondAttribute="leading" id="Ph9-ME-LZT"/>
+                    <constraint firstItem="Q11-bU-Foq" firstAttribute="top" secondItem="N9F-9d-jEW" secondAttribute="top" id="ScF-do-uCY"/>
+                    <constraint firstItem="Q11-bU-Foq" firstAttribute="leading" secondItem="N9F-9d-jEW" secondAttribute="trailing" id="bH9-pn-eAF"/>
+                    <constraint firstItem="rOL-53-jIq" firstAttribute="leading" secondItem="Q11-bU-Foq" secondAttribute="trailing" id="h6e-iH-vqp"/>
+                    <constraint firstItem="rOL-53-jIq" firstAttribute="height" secondItem="Q11-bU-Foq" secondAttribute="height" id="iDg-cP-jyo"/>
+                    <constraint firstItem="Q11-bU-Foq" firstAttribute="width" secondItem="N9F-9d-jEW" secondAttribute="width" id="nka-Z5-v59"/>
+                    <constraint firstItem="rOL-53-jIq" firstAttribute="top" secondItem="Q11-bU-Foq" secondAttribute="top" id="wWT-lN-GXg"/>
+                    <constraint firstItem="F7m-IY-bAy" firstAttribute="leading" secondItem="9H1-uc-YO6" secondAttribute="leading" constant="10" id="xdz-Tm-2c2"/>
+                    <constraint firstItem="F7m-IY-bAy" firstAttribute="top" secondItem="9H1-uc-YO6" secondAttribute="top" constant="10" id="yPs-GG-eGn"/>
+                </constraints>
+            </tableViewCellContentView>
+            <connections>
+                <outlet property="maxField" destination="KbR-4N-5h0" id="6GM-RG-NCP"/>
+                <outlet property="minField" destination="OLV-dS-Zk9" id="0zr-to-JtV"/>
+                <outlet property="titleLabel" destination="F7m-IY-bAy" id="6bz-nj-Phm"/>
+            </connections>
+            <point key="canvasLocation" x="-9.5" y="456"/>
+        </tableViewCell>
+    </objects>
+</document>