mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
Contacts detail rework
This commit is contained in:
parent
b3eabdf2fe
commit
ee138eca7f
17 changed files with 95 additions and 258 deletions
|
|
@ -1,74 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactDetailsLabelView">
|
||||
<connections>
|
||||
<outlet property="tableView" destination="5" id="15"/>
|
||||
<outlet property="view" destination="4" id="12"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="Qsc-w0-kmj" userLabel="iphone6MetricsView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="6" userLabel="topBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="fso-nh-iJP" userLabel="backgroundColor">
|
||||
<rect key="frame" x="0.0" y="1" width="375" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="bPy-1d-07h" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="1" width="75" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="New Discussion"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="back.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="4zW-v3-vqp"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="5" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="42" width="375" height="517"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-1" id="13"/>
|
||||
<outlet property="delegate" destination="-1" id="14"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="back.png" width="25" height="22"/>
|
||||
<image name="color_F.png" width="1" height="1"/>
|
||||
</resources>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
||||
Binary file not shown.
|
|
@ -97,10 +97,10 @@
|
|||
<outletCollection property="gestureRecognizers" destination="8bV-f4-pLL" appends="YES" id="4V5-Px-aHT"/>
|
||||
</connections>
|
||||
</imageView>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="none" allowsSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="19" userLabel="tableView">
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" allowsSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="1" sectionFooterHeight="1" id="19" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="132" width="375" height="427"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<connections>
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
/* ContactDetailsLabelViewController.h
|
||||
*
|
||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "UICompositeView.h"
|
||||
|
||||
@protocol ContactDetailsLabelViewDelegate <NSObject>
|
||||
|
||||
- (void)changeContactDetailsLabel:(NSString *)label;
|
||||
|
||||
@end
|
||||
|
||||
@interface ContactDetailsLabelView
|
||||
: UIViewController <UITableViewDelegate, UITableViewDataSource, UICompositeViewDelegate> {
|
||||
}
|
||||
|
||||
@property(nonatomic, copy) NSString *selectedData;
|
||||
@property(nonatomic, strong) NSDictionary *dataList;
|
||||
@property(nonatomic, strong) IBOutlet UITableView *tableView;
|
||||
@property(nonatomic, strong) id<ContactDetailsLabelViewDelegate> delegate;
|
||||
|
||||
- (IBAction)onBackClick:(id)event;
|
||||
|
||||
@end
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
/* ContactDetailsLabelViewController.m
|
||||
*
|
||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import "ContactDetailsLabelView.h"
|
||||
|
||||
#import "UACellBackgroundView.h"
|
||||
#import "Utils.h"
|
||||
#import "PhoneMainView.h"
|
||||
|
||||
@implementation ContactDetailsLabelView
|
||||
|
||||
@synthesize dataList;
|
||||
@synthesize tableView;
|
||||
@synthesize selectedData;
|
||||
@synthesize delegate;
|
||||
|
||||
#pragma mark - UICompositeViewDelegate Functions
|
||||
|
||||
static UICompositeViewDescription *compositeDescription = nil;
|
||||
|
||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
||||
if (compositeDescription == nil) {
|
||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
||||
statusBar:StatusBarView.class
|
||||
tabBar:TabBarView.class
|
||||
fullscreen:false
|
||||
landscapeMode:LinphoneManager.runningOnIpad
|
||||
portraitMode:true];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
||||
- (UICompositeViewDescription *)compositeViewDescription {
|
||||
return self.class.compositeViewDescription;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)dismiss {
|
||||
if ([[PhoneMainView.instance currentView] equal:ContactDetailsLabelView.compositeViewDescription]) {
|
||||
[PhoneMainView.instance popCurrentView];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
- (void)setDataList:(NSDictionary *)adatalist {
|
||||
if ([dataList isEqualToDictionary:adatalist]) {
|
||||
return;
|
||||
}
|
||||
dataList = adatalist;
|
||||
[tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)setSelectedData:(NSString *)aselectedData {
|
||||
selectedData = [[NSString alloc] initWithString:aselectedData];
|
||||
[tableView reloadData];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [dataList count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)atableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
static NSString *kCellId = @"ContactDetailsLabelCell";
|
||||
UITableViewCell *cell = [atableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kCellId];
|
||||
}
|
||||
NSString *key = [[dataList allKeys] objectAtIndex:[indexPath row]];
|
||||
[cell.textLabel setText:[dataList objectForKey:key]];
|
||||
if ([key compare:selectedData] == 0) {
|
||||
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
|
||||
} else {
|
||||
[cell setAccessoryType:UITableViewCellAccessoryNone];
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NSString *key = [[dataList allKeys] objectAtIndex:[indexPath row]];
|
||||
[self setSelectedData:key];
|
||||
[delegate changeContactDetailsLabel:key];
|
||||
[self dismiss];
|
||||
}
|
||||
|
||||
#pragma mark - Action Functions
|
||||
|
||||
- (IBAction)onBackClick:(id)event {
|
||||
[self dismiss];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
#import "ContactDetailsLabelView.h"
|
||||
|
||||
typedef enum _ContactSections {
|
||||
ContactSections_None = -1,
|
||||
ContactSections_None = 0, // first section is empty because we cannot set header for first section
|
||||
ContactSections_First_Name,
|
||||
ContactSections_Last_Name,
|
||||
ContactSections_Number,
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@
|
|||
@implementation ContactDetailsTableView
|
||||
|
||||
static const ContactSections_e contactSections[ContactSections_MAX] = {
|
||||
ContactSections_First_Name, ContactSections_Last_Name, ContactSections_Number, ContactSections_Sip,
|
||||
ContactSections_Email};
|
||||
ContactSections_None, ContactSections_First_Name, ContactSections_Last_Name,
|
||||
ContactSections_Number, ContactSections_Sip, ContactSections_Email};
|
||||
|
||||
@synthesize contactDetailsDelegate;
|
||||
@synthesize contact;
|
||||
|
|
@ -500,7 +500,6 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {
|
|||
[cell.detailTextField setDelegate:self];
|
||||
[cell.detailTextField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
|
||||
[cell.detailTextField setAutocorrectionType:UITextAutocorrectionTypeNo];
|
||||
[cell setBackgroundColor:[UIColor whiteColor]];
|
||||
}
|
||||
|
||||
NSMutableArray *sectionDict = [self getSectionData:[indexPath section]];
|
||||
|
|
@ -510,11 +509,11 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {
|
|||
// default label is our app name
|
||||
NSString *label = [FastAddressBook localizedLabel:[labelArray objectAtIndex:0]];
|
||||
|
||||
if (contactSections[[indexPath section]] == ContactSections_First_Name) {
|
||||
if (contactSections[indexPath.section] == ContactSections_First_Name) {
|
||||
value =
|
||||
(__bridge NSString *)(ABRecordCopyValue(contact, [self propertyIDForSection:ContactSections_First_Name]));
|
||||
label = nil;
|
||||
} else if (contactSections[[indexPath section]] == ContactSections_Last_Name) {
|
||||
} else if (contactSections[indexPath.section] == ContactSections_Last_Name) {
|
||||
value =
|
||||
(__bridge NSString *)(ABRecordCopyValue(contact, [self propertyIDForSection:ContactSections_Last_Name]));
|
||||
label = nil;
|
||||
|
|
@ -721,23 +720,38 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {
|
|||
return UITableViewCellEditingStyleDelete;
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
NSString *text = nil;
|
||||
if (contactSections[section] == ContactSections_First_Name) {
|
||||
return NSLocalizedString(@"First name", nil);
|
||||
text = NSLocalizedString(@"First name", nil);
|
||||
} else if (contactSections[section] == ContactSections_Last_Name) {
|
||||
return NSLocalizedString(@"Last name", nil);
|
||||
text = NSLocalizedString(@"Last name", nil);
|
||||
} else if ([self getSectionData:section].count > 0) {
|
||||
if (contactSections[section] == ContactSections_Number) {
|
||||
text = NSLocalizedString(@"Phone numbers", nil);
|
||||
} else if (contactSections[section] == ContactSections_Sip) {
|
||||
text = NSLocalizedString(@"SIP addresses", nil);
|
||||
} else if (contactSections[section] == ContactSections_Email) {
|
||||
text = NSLocalizedString(@"Email addresses", nil);
|
||||
}
|
||||
}
|
||||
if ([[self getSectionData:section] count] == 0)
|
||||
return nil;
|
||||
|
||||
if (contactSections[section] == ContactSections_Number) {
|
||||
return NSLocalizedString(@"Phone numbers", nil);
|
||||
} else if (contactSections[section] == ContactSections_Sip) {
|
||||
return NSLocalizedString(@"SIP addresses", nil);
|
||||
} else if (contactSections[section] == ContactSections_Email) {
|
||||
return NSLocalizedString(@"Email addresses", nil);
|
||||
if (!text) {
|
||||
return nil;
|
||||
}
|
||||
return nil;
|
||||
|
||||
UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 20)];
|
||||
tempView.backgroundColor = [UIColor clearColor];
|
||||
|
||||
UILabel *tempLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 5, 300, 10)];
|
||||
tempLabel.backgroundColor = [UIColor clearColor];
|
||||
tempLabel.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"color_E"]];
|
||||
tempLabel.text = text.uppercaseString;
|
||||
tempLabel.textAlignment = NSTextAlignmentLeft;
|
||||
tempLabel.font = [UIFont systemFontOfSize:12];
|
||||
[tempView addSubview:tempLabel];
|
||||
|
||||
return tempView;
|
||||
}
|
||||
|
||||
#pragma mark - ContactDetailsLabelDelegate Functions
|
||||
|
|
@ -823,4 +837,14 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {
|
|||
return true;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
|
||||
return 1e-5;
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
if (section == 0)
|
||||
return 1e-5;
|
||||
return [self tableView:tableView viewForHeaderInSection:section].frame.size.height;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -30,15 +30,20 @@
|
|||
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
||||
if (self) {
|
||||
UITextField *tf = [[UITextField alloc] init];
|
||||
[tf setHidden:TRUE];
|
||||
[tf setClearButtonMode:UITextFieldViewModeWhileEditing];
|
||||
[tf setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
|
||||
[tf setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
|
||||
tf.hidden = TRUE;
|
||||
tf.clearButtonMode = UITextFieldViewModeWhileEditing;
|
||||
tf.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
|
||||
tf.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
|
||||
|
||||
self.detailTextField = tf;
|
||||
|
||||
UIFont *font = [UIFont fontWithName:@"Helvetica-Bold" size:[UIFont systemFontSize]];
|
||||
[self.detailTextLabel setFont:font];
|
||||
[self.detailTextField setFont:font];
|
||||
|
||||
self.detailTextLabel.backgroundColor = self.detailTextField.backgroundColor =
|
||||
[UIColor colorWithPatternImage:[UIImage imageNamed:@"color_A"]];
|
||||
|
||||
[self.contentView addSubview:detailTextField];
|
||||
|
||||
// a vertical separator that will come between the text and detailed text
|
||||
|
|
@ -58,10 +63,11 @@
|
|||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
|
||||
CGRect superframe = [[self.detailTextField superview] frame];
|
||||
CGRect detailEditFrame;
|
||||
detailEditFrame.origin.x = 15;
|
||||
detailEditFrame.origin.y = 0;
|
||||
detailEditFrame.size.height = 44;
|
||||
detailEditFrame.origin.y = 5;
|
||||
detailEditFrame.size.height = superframe.size.height - 10;
|
||||
|
||||
if ([[self.textLabel text] length] != 0) {
|
||||
detailEditFrame.origin.x += [self.textLabel frame].size.width + 8;
|
||||
|
|
@ -79,9 +85,8 @@
|
|||
}
|
||||
|
||||
// put the detailed text edit view at the correct position
|
||||
CGRect superframe = [[self.detailTextField superview] frame];
|
||||
detailEditFrame.size.width = superframe.size.width - detailEditFrame.origin.x;
|
||||
[self.detailTextField setFrame:detailEditFrame];
|
||||
detailEditFrame.size.width = superframe.size.width - 10 - detailEditFrame.origin.x;
|
||||
self.detailTextField.frame = detailEditFrame;
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewCell Functions
|
||||
|
|
|
|||
33
Classes/LinphoneUI/UIEditableTableViewCell.xib
Normal file
33
Classes/LinphoneUI/UIEditableTableViewCell.xib
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="R4P-di-kSp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" minimumFontSize="17" id="dTn-Hc-bGM">
|
||||
<rect key="frame" x="8" y="6" width="359" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.90588235289999997" green="0.90588235289999997" blue="0.90588235289999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<point key="canvasLocation" x="338.5" y="43"/>
|
||||
</view>
|
||||
</objects>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -107,6 +107,7 @@
|
|||
636BC9971B5F921B00C754CE /* UIIconButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 636BC9961B5F921B00C754CE /* UIIconButton.m */; };
|
||||
63701DD61BA31DA1006A9AE3 /* UIConfirmationDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63701DD51BA31DA1006A9AE3 /* UIConfirmationDialog.xib */; };
|
||||
63701DDF1BA32039006A9AE3 /* UIConfirmationDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 63701DDE1BA32039006A9AE3 /* UIConfirmationDialog.m */; };
|
||||
637144571BD531CE007E7C06 /* UIEditableTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 637144561BD531CE007E7C06 /* UIEditableTableViewCell.xib */; };
|
||||
637157A11B283FE200C91677 /* FileTransferDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 637157A01B283FE200C91677 /* FileTransferDelegate.m */; };
|
||||
637527C91BBA8EF700FDEA6F /* add_field_default.png in Resources */ = {isa = PBXBuildFile; fileRef = 6375271A1BBA8EF700FDEA6F /* add_field_default.png */; };
|
||||
637527CA1BBA8EF700FDEA6F /* add_field_over.png in Resources */ = {isa = PBXBuildFile; fileRef = 6375271B1BBA8EF700FDEA6F /* add_field_over.png */; };
|
||||
|
|
@ -738,6 +739,7 @@
|
|||
63701DD51BA31DA1006A9AE3 /* UIConfirmationDialog.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIConfirmationDialog.xib; sourceTree = "<group>"; };
|
||||
63701DDD1BA32039006A9AE3 /* UIConfirmationDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIConfirmationDialog.h; sourceTree = "<group>"; };
|
||||
63701DDE1BA32039006A9AE3 /* UIConfirmationDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIConfirmationDialog.m; sourceTree = "<group>"; };
|
||||
637144561BD531CE007E7C06 /* UIEditableTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIEditableTableViewCell.xib; sourceTree = "<group>"; };
|
||||
6371579F1B283FE200C91677 /* FileTransferDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileTransferDelegate.h; path = Utils/FileTransferDelegate.h; sourceTree = "<group>"; };
|
||||
637157A01B283FE200C91677 /* FileTransferDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileTransferDelegate.m; path = Utils/FileTransferDelegate.m; sourceTree = "<group>"; };
|
||||
6375271A1BBA8EF700FDEA6F /* add_field_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = add_field_default.png; sourceTree = "<group>"; };
|
||||
|
|
@ -1521,6 +1523,7 @@
|
|||
2248E90D12F7E4CF00220D9C /* UIDigitButton.m */,
|
||||
D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */,
|
||||
D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */,
|
||||
637144561BD531CE007E7C06 /* UIEditableTableViewCell.xib */,
|
||||
2214EB8712F84EBB002A5394 /* UIHangUpButton.h */,
|
||||
2214EB8812F84EBB002A5394 /* UIHangUpButton.m */,
|
||||
D31C9C96158A1CDE00756B45 /* UIHistoryCell.h */,
|
||||
|
|
@ -2374,6 +2377,7 @@
|
|||
639CEAFD1A1DF4D9004DE38F /* StatusBarView.xib in Resources */,
|
||||
637527DD1BBA8EF700FDEA6F /* call_status_incoming.png in Resources */,
|
||||
637528321BBA8EF700FDEA6F /* numpad_3_over.png in Resources */,
|
||||
637144571BD531CE007E7C06 /* UIEditableTableViewCell.xib in Resources */,
|
||||
F088488A19FF8C41007FFCF3 /* UIContactCell.xib in Resources */,
|
||||
637527E51BBA8EF700FDEA6F /* camera_switch_disabled.png in Resources */,
|
||||
6375280F1BBA8EF700FDEA6F /* delete_field_default.png in Resources */,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue