* updated project

- updated assets
- added launch storyboard
- updated manifest
- updated main storyboard

* updated names

* updated screenshots
This commit is contained in:
Mykyta Bondarenko 2018-11-20 14:41:44 -05:00 коммит произвёл Craig Dunn
Родитель d2cf36337f
Коммит 7f4ed5630a
36 изменённых файлов: 596 добавлений и 283 удалений

Просмотреть файл

@ -1,17 +1,21 @@
using System;
using Foundation;
using Foundation;
using UIKit;
namespace PrintBanner {
namespace PrintBanner
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
// User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
public override UIWindow Window { get; set; }
[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate {
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
public override UIWindow Window { get; set; }
static void Main (string[] args)
{
UIApplication.Main (args, null, "AppDelegate");
}
}
}
return true;
}
}
}

Просмотреть файл

@ -0,0 +1,244 @@
{
"images": [
{
"size": "20x20",
"scale": "2x",
"idiom": "iphone"
},
{
"size": "20x20",
"scale": "3x",
"idiom": "iphone"
},
{
"filename": "icon-spotlight-29@2x.png",
"size": "29x29",
"scale": "2x",
"idiom": "iphone"
},
{
"filename": "icon-spotlight-29@3x.png",
"size": "29x29",
"scale": "3x",
"idiom": "iphone"
},
{
"filename": "icon-spotlight-40@2x.png",
"size": "40x40",
"scale": "2x",
"idiom": "iphone"
},
{
"filename": "icon-spotlight-40@3x.png",
"size": "40x40",
"scale": "3x",
"idiom": "iphone"
},
{
"filename": "icon-app-60@2x.png",
"size": "60x60",
"scale": "2x",
"idiom": "iphone"
},
{
"filename": "Icon-app-60@3x.png",
"size": "60x60",
"scale": "3x",
"idiom": "iphone"
},
{
"size": "20x20",
"scale": "1x",
"idiom": "ipad"
},
{
"size": "20x20",
"scale": "2x",
"idiom": "ipad"
},
{
"filename": "icon-spotlight-29.png",
"size": "29x29",
"scale": "1x",
"idiom": "ipad"
},
{
"filename": "icon-spotlight-29@2x.png",
"size": "29x29",
"scale": "2x",
"idiom": "ipad"
},
{
"size": "40x40",
"scale": "1x",
"idiom": "ipad"
},
{
"filename": "icon-spotlight-40@2x.png",
"size": "40x40",
"scale": "2x",
"idiom": "ipad"
},
{
"filename": "Icon-app-83.5@2x.png",
"size": "83.5x83.5",
"scale": "2x",
"idiom": "ipad"
},
{
"filename": "icon-app-76.png",
"size": "76x76",
"scale": "1x",
"idiom": "ipad"
},
{
"filename": "icon-app-76@2x.png",
"size": "76x76",
"scale": "2x",
"idiom": "ipad"
},
{
"filename": "app-store-logo.png",
"size": "1024x1024",
"scale": "1x",
"idiom": "ios-marketing"
},
{
"size": "60x60",
"scale": "2x",
"idiom": "car"
},
{
"size": "60x60",
"scale": "3x",
"idiom": "car"
},
{
"role": "notificationCenter",
"size": "24x24",
"subtype": "38mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "notificationCenter",
"size": "27.5x27.5",
"subtype": "42mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "companionSettings",
"size": "29x29",
"scale": "2x",
"idiom": "watch"
},
{
"role": "companionSettings",
"size": "29x29",
"scale": "3x",
"idiom": "watch"
},
{
"role": "appLauncher",
"size": "40x40",
"subtype": "38mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "appLauncher",
"size": "44x44",
"subtype": "40mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "appLauncher",
"size": "50x50",
"subtype": "44mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "quickLook",
"size": "86x86",
"subtype": "38mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "quickLook",
"size": "98x98",
"subtype": "42mm",
"scale": "2x",
"idiom": "watch"
},
{
"role": "quickLook",
"size": "108x108",
"subtype": "44mm",
"scale": "2x",
"idiom": "watch"
},
{
"size": "1024x1024",
"scale": "1x",
"idiom": "watch-marketing"
},
{
"size": "16x16",
"scale": "1x",
"idiom": "mac"
},
{
"size": "16x16",
"scale": "2x",
"idiom": "mac"
},
{
"size": "32x32",
"scale": "1x",
"idiom": "mac"
},
{
"size": "32x32",
"scale": "2x",
"idiom": "mac"
},
{
"size": "128x128",
"scale": "1x",
"idiom": "mac"
},
{
"size": "128x128",
"scale": "2x",
"idiom": "mac"
},
{
"size": "256x256",
"scale": "1x",
"idiom": "mac"
},
{
"size": "256x256",
"scale": "2x",
"idiom": "mac"
},
{
"size": "512x512",
"scale": "1x",
"idiom": "mac"
},
{
"size": "512x512",
"scale": "2x",
"idiom": "mac"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.0 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.6 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.3 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.3 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 900 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.8 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.2 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 3.3 KiB

Просмотреть файл

@ -9,7 +9,7 @@
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIMainStoryboardFile</key>
<string>MainStoryboard</string>
<string>Main</string>
<key>MinimumOSVersion</key>
<string>9.0</string>
<key>CFBundleDisplayName</key>
@ -17,21 +17,19 @@
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
</array>
<key>CFBundleIconFiles</key>
<array>
<string>Icon</string>
<string>Icon@2x</string>
<string>Icon-72</string>
<string>Icon-Small</string>
<string>Icon-Small@2x</string>
<string>Icon-Small-50</string>
<string>Icon-60@2x</string>
<string>Icon-Small-40@2x</string>
<integer>2</integer>
</array>
<key>CFBundleName</key>
<string>PrintBanner</string>
<string>Print Banner</string>
<key>CFBundleIdentifier</key>
<string>com.xamarin.printbanner</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<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>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Xamarin" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xtH-IL-iqA">
<rect key="frame" x="117" y="319" width="142" height="48"/>
<fontDescription key="fontDescription" type="system" pointSize="40"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="xtH-IL-iqA" firstAttribute="centerY" secondItem="Mw3-CH-lkk" secondAttribute="centerY" id="80a-ZT-zIe"/>
<constraint firstItem="xtH-IL-iqA" firstAttribute="centerX" secondItem="Mw3-CH-lkk" secondAttribute="centerX" id="y84-9I-x2G"/>
</constraints>
<viewLayoutGuide key="safeArea" id="Mw3-CH-lkk"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

Просмотреть файл

@ -0,0 +1,15 @@
using UIKit;
namespace PrintBanner
{
public class Application
{
// This is the main entry point of the application.
static void Main(string[] args)
{
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main(args, null, "AppDelegate");
}
}
}

Просмотреть файл

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<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" initialViewController="2">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<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>
<scenes>
<!--Print Banner View Controller-->
<scene sceneID="5">
<objects>
<viewController id="2" customClass="PrintBannerViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Font:" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="8">
<rect key="frame" x="16" y="80" width="39" height="21"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Color:" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="9">
<rect key="frame" x="16" y="153" width="46" height="20.5"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="10">
<rect key="frame" x="68" y="109" width="239" height="29"/>
<segments>
<segment title="Typed"/>
<segment title="Script"/>
<segment title="Courier"/>
<segment title="Arial"/>
</segments>
</segmentedControl>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="11">
<rect key="frame" x="68" y="181.5" width="239" height="29"/>
<segments>
<segment title="Black"/>
<segment title="Orange"/>
<segment title="Purple"/>
<segment title="Red"/>
</segments>
</segmentedControl>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="12">
<rect key="frame" x="168.5" y="241.5" width="38" height="32"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
<state key="normal" title="Print">
<color key="titleColor" red="0.196078" green="0.30980000000000002" blue="0.52156999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="highlighted">
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="Print:" destination="2" eventType="touchUpInside" id="267"/>
</connections>
</button>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="sample text" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="tVX-Kv-BBY">
<rect key="frame" x="65.5" y="34" width="244" height="30"/>
<constraints>
<constraint firstAttribute="width" constant="244" id="AbK-0y-xi7"/>
</constraints>
<nil key="textColor"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="11" firstAttribute="top" secondItem="9" secondAttribute="bottom" constant="8" id="8Lm-2y-W9b"/>
<constraint firstItem="tVX-Kv-BBY" firstAttribute="centerX" secondItem="ibY-wK-ZT2" secondAttribute="centerX" id="FDY-RE-xmo"/>
<constraint firstItem="8" firstAttribute="top" secondItem="tVX-Kv-BBY" secondAttribute="bottom" constant="16" id="Gmp-Po-9Zu"/>
<constraint firstItem="10" firstAttribute="centerX" secondItem="ibY-wK-ZT2" secondAttribute="centerX" id="Nnu-Pn-Tzp"/>
<constraint firstItem="12" firstAttribute="centerX" secondItem="ibY-wK-ZT2" secondAttribute="centerX" id="O7q-Ta-SUI"/>
<constraint firstItem="8" firstAttribute="leading" secondItem="ibY-wK-ZT2" secondAttribute="leading" constant="16" id="RGv-8R-3xh"/>
<constraint firstItem="10" firstAttribute="top" secondItem="8" secondAttribute="bottom" constant="8" id="RLN-AW-7oe"/>
<constraint firstItem="9" firstAttribute="top" secondItem="10" secondAttribute="bottom" constant="16" id="edl-Pq-fNH"/>
<constraint firstItem="tVX-Kv-BBY" firstAttribute="top" secondItem="ibY-wK-ZT2" secondAttribute="top" constant="14" id="hfH-69-WWF"/>
<constraint firstItem="12" firstAttribute="top" secondItem="11" secondAttribute="bottom" constant="32" id="pw1-uT-shI"/>
<constraint firstItem="11" firstAttribute="centerX" secondItem="ibY-wK-ZT2" secondAttribute="centerX" id="tce-zG-NtC"/>
<constraint firstItem="9" firstAttribute="leading" secondItem="ibY-wK-ZT2" secondAttribute="leading" constant="16" id="yEv-Do-ZmK"/>
</constraints>
<viewLayoutGuide key="safeArea" id="ibY-wK-ZT2"/>
</view>
<extendedEdge key="edgesForExtendedLayout"/>
<connections>
<outlet property="colorSelection" destination="11" id="name-outlet-11"/>
<outlet property="fontSelection" destination="10" id="name-outlet-10"/>
<outlet property="printButton" destination="12" id="name-outlet-12"/>
<outlet property="textField" destination="tVX-Kv-BBY" id="name-outlet-tVX-Kv-BBY"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-614.39999999999998" y="-249.23070000000001"/>
</scene>
</scenes>
</document>

Просмотреть файл

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4457.9" systemVersion="12C60" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="2">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3682.9"/>
</dependencies>
<scenes>
<!--Print Banner View Controller-->
<scene sceneID="5">
<objects>
<viewController id="2" customClass="PrintBannerViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="3">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" id="7">
<rect key="frame" x="40" y="28" width="244" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits"/>
</textField>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Font:" lineBreakMode="tailTruncation" minimumFontSize="10" id="8">
<rect key="frame" x="20" y="83" width="45" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Color:" lineBreakMode="tailTruncation" minimumFontSize="10" id="9">
<rect key="frame" x="20" y="162" width="45" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="10">
<rect key="frame" x="15" y="111" width="290" height="29"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments>
<segment title="Typed"/>
<segment title="Script"/>
<segment title="Courier"/>
<segment title="Arial"/>
</segments>
</segmentedControl>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="11">
<rect key="frame" x="28" y="191" width="265" height="29"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<segments>
<segment title="Black"/>
<segment title="Orange"/>
<segment title="Purple"/>
<segment title="Red"/>
</segments>
</segmentedControl>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="12">
<rect key="frame" x="126" y="248" width="72" height="37"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<state key="normal" title="Print">
<color key="titleColor" red="0.196078" green="0.30980000000000002" blue="0.52156999999999998" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<extendedEdge key="edgesForExtendedLayout"/>
<connections>
<outlet property="colorSelection" destination="11" id="name-outlet-11"/>
<outlet property="fontSelection" destination="10" id="name-outlet-10"/>
<outlet property="printButton" destination="12" id="name-outlet-12"/>
<outlet property="textField" destination="7" id="name-outlet-7"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-240" y="-308"/>
</scene>
</scenes>
<classes>
<class className="PrintBannerViewController" superclassName="UIViewController">
<source key="sourceIdentifier" type="project" relativePath="./Classes/PrintBannerViewController.h"/>
<relationships>
<relationship kind="outlet" name="colorSelection" candidateClass="UISegmentedControl"/>
<relationship kind="outlet" name="fontSelection" candidateClass="UISegmentedControl"/>
<relationship kind="outlet" name="printButton" candidateClass="UIButton"/>
<relationship kind="outlet" name="textField" candidateClass="UITextField"/>
</relationships>
</class>
</classes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>
</document>

Просмотреть файл

@ -93,9 +93,6 @@
<Reference Include="System" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<None Include="Info.plist" />
</ItemGroup>
@ -105,22 +102,25 @@
<Compile Include="PrintBannerViewController.designer.cs">
<DependentUpon>PrintBannerViewController.cs</DependentUpon>
</Compile>
<Compile Include="Main.cs" />
</ItemGroup>
<ItemGroup>
<InterfaceDefinition Include="MainStoryboard.storyboard" />
<InterfaceDefinition Include="Main.storyboard" />
<InterfaceDefinition Include="LaunchScreen.storyboard" />
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\Icon.png" />
<BundleResource Include="Resources\Icon%402x.png" />
<BundleResource Include="Resources\Icon-72.png" />
<BundleResource Include="Resources\Icon-Small.png" />
<BundleResource Include="Resources\Icon-Small%402x.png" />
<BundleResource Include="Resources\Icon-Small-50.png" />
<BundleResource Include="Resources\Default.png" />
<BundleResource Include="Resources\Default%402x.png" />
<BundleResource Include="Resources\Default-568h%402x.png" />
<BundleResource Include="Resources\Icon-60%402x.png" />
<BundleResource Include="Resources\Icon-Small-40%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\app-store-logo.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-app-83.5%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-app-76.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-spotlight-29%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-spotlight-29.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-app-60%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Icon-app-60%403x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-spotlight-29%403x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-spotlight-40%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-spotlight-40%403x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\icon-app-76%402x.png" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,113 +1,113 @@
using System;
using CoreGraphics;
using Foundation;
using System;
using UIKit;
namespace PrintBanner {
namespace PrintBanner
{
public partial class PrintBannerViewController : UIViewController
{
private static readonly string[] FontNames = { "American Typewriter", "Snell Roundhand", "Courier", "Arial" };
public partial class PrintBannerViewController : UIViewController {
private static readonly UIColor[] Colors = { UIColor.Black, UIColor.Orange, UIColor.Purple, UIColor.Red };
const float DefaultFontSize = 48f;
const float PaddingFactor = 0.1f;
private const float DefaultFontSize = 48f;
UISimpleTextPrintFormatter textformatter;
private const float PaddingFactor = 0.1f;
public PrintBannerViewController (IntPtr handle) : base (handle)
{
}
private UISimpleTextPrintFormatter textFormatter;
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
public PrintBannerViewController(IntPtr handle) : base(handle) { }
textField.EditingDidEndOnExit += (sender, e) => {
textField.ResignFirstResponder ();
};
public override void ViewDidLoad()
{
base.ViewDidLoad();
textField.EditingDidEndOnExit += (sender, e) => textField.ResignFirstResponder();
}
printButton.TouchUpInside += Print;
}
partial void Print(UIButton sender)
{
var controller = UIPrintInteractionController.SharedPrintController;
controller.CutLengthForPaper = delegate (UIPrintInteractionController printController, UIPrintPaper paper)
{
// Create a font with arbitrary size so that you can calculate the approximate
// font points per screen point for the height of the text.
var font = textFormatter.Font;
public void Print (object sender, EventArgs args)
{
UIPrintInteractionController controller = UIPrintInteractionController.SharedPrintController;
if (controller == null) {
Console.WriteLine ("Couldn't get shared UIPrintInteractionController");
return;
}
var text = new NSString(textField.Text);
var attributes = new UIStringAttributes { Font = font };
var size = text.GetSizeUsingAttributes(attributes);
controller.CutLengthForPaper = delegate (UIPrintInteractionController printController, UIPrintPaper paper) {
// Create a font with arbitrary size so that you can calculate the approximate
// font points per screen point for the height of the text.
UIFont font = textformatter.Font;
nfloat approximateFontPointPerScreenPoint = font.PointSize / size.Height;
NSString str = new NSString (textField.Text);
UIStringAttributes attributes = new UIStringAttributes ();
attributes.Font = font;
CGSize size = str.GetSizeUsingAttributes (attributes);
// Create a new font using a size that will fill the width of the paper
font = GetSelectedFont((float)(paper.PrintableRect.Size.Width * approximateFontPointPerScreenPoint));
nfloat approximateFontPointPerScreenPoint = font.PointSize / size.Height;
// Calculate the height and width of the text with the final font size
attributes.Font = font;
var finalTextSize = text.GetSizeUsingAttributes(attributes);
// Create a new font using a size that will fill the width of the paper
font = SelectFont ((float)(paper.PrintableRect.Size.Width * approximateFontPointPerScreenPoint));
// Set the UISimpleTextFormatter font to the font with the size calculated
textFormatter.Font = font;
// Calculate the height and width of the text with the final font size
attributes.Font = font;
CGSize finalTextSize = str.GetSizeUsingAttributes (attributes);
// Calculate the margins of the roll. Roll printers may have unprintable areas
// before and after the cut. We must add this to our cut length to ensure the
// printable area has enough room for our text.
nfloat lengthOfMargins = paper.PaperSize.Height - paper.PrintableRect.Size.Height;
// Set the UISimpleTextFormatter font to the font with the size calculated
textformatter.Font = font;
// The cut length is the width of the text, plus margins, plus some padding
return finalTextSize.Width + lengthOfMargins + paper.PrintableRect.Size.Width * PaddingFactor;
};
// Calculate the margins of the roll. Roll printers may have unprintable areas
// before and after the cut. We must add this to our cut length to ensure the
// printable area has enough room for our text.
nfloat lengthOfMargins = paper.PaperSize.Height - paper.PrintableRect.Size.Height;
var printInfo = UIPrintInfo.PrintInfo;
printInfo.OutputType = UIPrintInfoOutputType.General;
printInfo.Orientation = UIPrintInfoOrientation.Landscape;
printInfo.JobName = textField.Text;
// The cut length is the width of the text, plus margins, plus some padding
return finalTextSize.Width + lengthOfMargins + paper.PrintableRect.Size.Width * PaddingFactor;
};
textFormatter = new UISimpleTextPrintFormatter(textField.Text)
{
Color = GetSelectedColor(),
Font = GetSelectedFont()
};
UIPrintInfo printInfo = UIPrintInfo.PrintInfo;
printInfo.OutputType = UIPrintInfoOutputType.General;
printInfo.Orientation = UIPrintInfoOrientation.Landscape;
printInfo.JobName = textField.Text;
controller.PrintInfo = printInfo;
controller.PrintFormatter = textFormatter;
controller.Present(true, OnPrintingComplete);
textformatter = new UISimpleTextPrintFormatter (textField.Text) {
Color = SelectedColor,
Font = SelectFont ()
};
printInfo.Dispose();
printInfo = null;
}
controller.PrintInfo = printInfo;
controller.PrintFormatter = textformatter;
private void OnPrintingComplete(UIPrintInteractionController controller, bool completed, NSError error)
{
if (completed && error != null)
{
var message = $"Due to error in domain `{error.Domain}` with code: {error.Code}";
Console.WriteLine($"FAILED! {message}");
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
controller.PresentFromRectInView (printButton.Frame, View, true, PrintingComplete);
else
controller.Present (true, PrintingComplete);
}
var alert = UIAlertController.Create("Failed!", message, UIAlertControllerStyle.Alert);
alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
ShowViewController(alert, this);
}
}
void PrintingComplete (UIPrintInteractionController printInteractionController, bool completed, NSError error)
{
if (completed && error != null) {
string message = String.Format ("Due to error in domain `{0}` with code: {1}", error.Domain, error.Code);
Console.WriteLine ("FAILED! {0}", message);
new UIAlertView ("Failed!", message, null, "OK", null).Show ();
}
}
private UIFont GetSelectedFont(float size = DefaultFontSize)
{
return UIFont.FromName(FontNames[fontSelection.SelectedSegment], size) ?? UIFont.SystemFontOfSize(size);
}
static string[] font_names = { "American Typewriter", "Snell Roundhand", "Courier", "Arial" };
private UIColor GetSelectedColor()
{
return Colors[colorSelection.SelectedSegment];
}
UIFont SelectFont (float size = DefaultFontSize)
{
var font = UIFont.FromName (font_names [fontSelection.SelectedSegment], size);
if (font == null)
font = UIFont.SystemFontOfSize (size);
return font;
}
static UIColor[] colors = { UIColor.Black, UIColor.Orange, UIColor.Purple, UIColor.Red };
UIColor SelectedColor {
get { return colors [colorSelection.SelectedSegment]; }
}
}
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (textFormatter != null)
{
textFormatter.Dispose();
textFormatter = null;
}
}
}
}

Просмотреть файл

@ -1,54 +1,59 @@
// WARNING
//
// This file has been generated automatically by Xamarin Studio to store outlets and
// actions made in the UI designer. If it is removed, they will be lost.
// Manual changes to this file may not be handled correctly.
//
using Foundation;
using System.CodeDom.Compiler;
namespace PrintBanner
{
[Register ("PrintBannerViewController")]
partial class PrintBannerViewController
{
[Outlet]
[GeneratedCodeAttribute ("iOS Designer", "1.0")]
UIKit.UISegmentedControl colorSelection { get; set; }
[Outlet]
[GeneratedCodeAttribute ("iOS Designer", "1.0")]
UIKit.UISegmentedControl fontSelection { get; set; }
[Outlet]
[GeneratedCodeAttribute ("iOS Designer", "1.0")]
UIKit.UIButton printButton { get; set; }
[Outlet]
[GeneratedCodeAttribute ("iOS Designer", "1.0")]
UIKit.UITextField textField { get; set; }
void ReleaseDesignerOutlets ()
{
if (textField != null) {
textField.Dispose ();
textField = null;
}
if (fontSelection != null) {
fontSelection.Dispose ();
fontSelection = null;
}
if (colorSelection != null) {
colorSelection.Dispose ();
colorSelection = null;
}
if (printButton != null) {
printButton.Dispose ();
printButton = null;
}
}
}
}
// WARNING
//
// This file has been generated automatically by Visual Studio from the outlets and
// actions declared in your storyboard file.
// Manual changes to this file will not be maintained.
//
using Foundation;
using System;
using System.CodeDom.Compiler;
namespace PrintBanner
{
[Register ("PrintBannerViewController")]
partial class PrintBannerViewController
{
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
UIKit.UISegmentedControl colorSelection { get; set; }
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
UIKit.UISegmentedControl fontSelection { get; set; }
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
UIKit.UIButton printButton { get; set; }
[Outlet]
[GeneratedCode ("iOS Designer", "1.0")]
UIKit.UITextField textField { get; set; }
[Action ("Print:")]
[GeneratedCode ("iOS Designer", "1.0")]
partial void Print (UIKit.UIButton sender);
void ReleaseDesignerOutlets ()
{
if (colorSelection != null) {
colorSelection.Dispose ();
colorSelection = null;
}
if (fontSelection != null) {
fontSelection.Dispose ();
fontSelection = null;
}
if (printButton != null) {
printButton.Dispose ();
printButton = null;
}
if (textField != null) {
textField.Dispose ();
textField = null;
}
}
}
}

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Default.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.2 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Default@2x.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Icon-60@2x.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Icon-72.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 6.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 8.6 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 4.2 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Icon-Small.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.2 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Icon.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 5.1 KiB

Двоичные данные
PrintBanner/PrintBanner/Resources/Icon@2x.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 14 KiB

Двоичные данные
PrintBanner/Screenshots/01.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 150 KiB

Двоичные данные
PrintBanner/Screenshots/02.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 147 KiB

Двоичные данные
PrintBanner/Screenshots/screenshot-1.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Двоичные данные
PrintBanner/Screenshots/screenshot-2.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 30 KiB