Added Drawing, CoreLocation, and Background Execution (multitasking) samples, as well as screenshots, etc.
|
@ -0,0 +1,26 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BackgroundExecution", "BackgroundExecution\BackgroundExecution.csproj", "{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Release|iPhone = Release|iPhone
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = BackgroundExecution\BackgroundExecution.csproj
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,95 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.Foundation;
|
||||
using System.Threading;
|
||||
|
||||
namespace Example_BackgroundExecution
|
||||
{
|
||||
[Register("AppDelegate")]
|
||||
public class AppDelegate : UIApplicationDelegate
|
||||
{
|
||||
#region -= declarations and properties =-
|
||||
|
||||
protected UIWindow window;
|
||||
protected UINavigationController mainNavController;
|
||||
protected Example_BackgroundExecution.Screens.iPhone.HomeScreen_iPhone iPhoneHome;
|
||||
|
||||
#endregion
|
||||
|
||||
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
|
||||
{
|
||||
// create our window
|
||||
window = new UIWindow (UIScreen.MainScreen.Bounds);
|
||||
window.MakeKeyAndVisible ();
|
||||
|
||||
// instantiate our main navigatin controller and add it's view to the window
|
||||
mainNavController = new UINavigationController ();
|
||||
|
||||
iPhoneHome = new Example_BackgroundExecution.Screens.iPhone.HomeScreen_iPhone ();
|
||||
mainNavController.PushViewController (iPhoneHome, false);
|
||||
|
||||
window.RootViewController = mainNavController;
|
||||
|
||||
// how to check if multi-tasking is supported
|
||||
if(UIDevice.CurrentDevice.IsMultitaskingSupported) {
|
||||
// code here to change your app's behavior
|
||||
}
|
||||
|
||||
//
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void WillEnterForeground (UIApplication application)
|
||||
{
|
||||
Console.WriteLine ("App will enter foreground");
|
||||
}
|
||||
|
||||
// Runs when the activation transitions from running in the background to
|
||||
// being the foreground application.
|
||||
public override void OnActivated (UIApplication application)
|
||||
{
|
||||
Console.WriteLine ("App is becoming active");
|
||||
}
|
||||
|
||||
public override void OnResignActivation (UIApplication application)
|
||||
{
|
||||
Console.WriteLine ("App moving to inactive state.");
|
||||
}
|
||||
|
||||
public override void DidEnterBackground (UIApplication application)
|
||||
{
|
||||
Console.WriteLine ("App entering background state.");
|
||||
|
||||
// if you're creating a VOIP application, this is how you set the keep alive
|
||||
//UIApplication.SharedApplication.SetKeepAliveTimout(600, () => { /* keep alive handler code*/ });
|
||||
|
||||
// register a long running task, and then start it on a new thread so that this method can return
|
||||
int taskID = UIApplication.SharedApplication.BeginBackgroundTask ( () => {});
|
||||
Thread task = new Thread (new ThreadStart ( () => { FinishLongRunningTask(taskID);}));
|
||||
task.Start ();
|
||||
}
|
||||
|
||||
protected void FinishLongRunningTask (int taskID)
|
||||
{
|
||||
Console.WriteLine ("Starting task " + taskID.ToString ());
|
||||
|
||||
Console.WriteLine ("Background time remaining: " + UIApplication.SharedApplication.BackgroundTimeRemaining.ToString ());
|
||||
|
||||
// sleep for 5 seconds to simulate a long running task
|
||||
Thread.Sleep (5000);
|
||||
|
||||
Console.WriteLine ("Task " + taskID.ToString() + " finished");
|
||||
|
||||
Console.WriteLine ("Background time remaining: " + UIApplication.SharedApplication.BackgroundTimeRemaining.ToString ());
|
||||
|
||||
// call our end task
|
||||
UIApplication.SharedApplication.EndBackgroundTask (taskID);
|
||||
}
|
||||
|
||||
// [not guaranteed that this will run]
|
||||
public override void WillTerminate (UIApplication application)
|
||||
{
|
||||
Console.WriteLine ("App is terminating.");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_BackgroundExecution
|
||||
{
|
||||
public class Application
|
||||
{
|
||||
public static void Main (string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine (e.ToString ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{BE447407-5D4B-4EFF-A47B-07B1D49F2C9B}</ProjectGuid>
|
||||
<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>Example_BackgroundExecution</RootNamespace>
|
||||
<AssemblyName>Example_BackgroundExecution</AssemblyName>
|
||||
<MtouchSdkVersion>3.2</MtouchSdkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="monotouch" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<Compile Include="AppDelegate.cs" />
|
||||
<Compile Include="Application.cs" />
|
||||
<Compile Include="Screens\iPhone\HomeScreen_iPhone.xib.cs">
|
||||
<DependentUpon>HomeScreen_iPhone.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Screens\iPhone\HomeScreen_iPhone.xib.designer.cs">
|
||||
<DependentUpon>HomeScreen_iPhone.xib</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Code\" />
|
||||
<Folder Include="Screens\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\Icons\" />
|
||||
<Folder Include="Screens\iPhone\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Info.plist" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<InterfaceDefinition Include="Screens\iPhone\HomeScreen_iPhone.xib" xmlns="" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Images\Icons\29_icon.png" />
|
||||
<Content Include="Images\Icons\50_icon.png" />
|
||||
<Content Include="Images\Icons\57_icon.png" />
|
||||
<Content Include="Images\Icons\58_icon.png" />
|
||||
<Content Include="Images\Icons\72_icon.png" />
|
||||
<Content Include="Images\Icons\114_icon.png" />
|
||||
<Content Include="Images\Icons\512_icon.png" />
|
||||
<Content Include="Default-Landscape~ipad.png" />
|
||||
<Content Include="Default-Portrait~ipad.png" />
|
||||
<Content Include="Default.png" />
|
||||
<Content Include="Default%402x.png" />
|
||||
</ItemGroup>
|
||||
</Project>
|
После Ширина: | Высота: | Размер: 782 KiB |
После Ширина: | Высота: | Размер: 752 KiB |
После Ширина: | Высота: | Размер: 141 KiB |
После Ширина: | Высота: | Размер: 638 KiB |
После Ширина: | Высота: | Размер: 20 KiB |
После Ширина: | Высота: | Размер: 2.9 KiB |
После Ширина: | Высота: | Размер: 5.8 KiB |
После Ширина: | Высота: | Размер: 318 KiB |
После Ширина: | Высота: | Размер: 7.1 KiB |
После Ширина: | Высота: | Размер: 7.3 KiB |
После Ширина: | Высота: | Размер: 10 KiB |
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key></key>
|
||||
<string></string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Multitasking</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Images/Icons/57_icon.png</string>
|
||||
<string>Images/Icons/114_icon.png</string>
|
||||
<string>Images/Icons/72_icon.png</string>
|
||||
<string>Images/Icons/29_icon.png</string>
|
||||
<string>Images/Icons/58_icon.png</string>
|
||||
<string>Images/Icons/50_icon.png</string>
|
||||
<string>Images/Icons/512_icon.png</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>3.0</string>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>audio</string>
|
||||
</array>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<string>1</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,240 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">768</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">117</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="711762367">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIButton" id="223306953">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 20}, {280, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Start a long running task</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnStartLongRunningTask</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="223306953"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="223306953"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="711762367"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="223306953"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>HomeScreen_iPhone</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{346, 672}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">9</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">HomeScreen_iPhone</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>btnStartLongRunningTask</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>btnStartLongRunningTask</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnStartLongRunningTask</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">view</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="768" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">117</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -0,0 +1,68 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MonoTouch.Foundation;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Threading;
|
||||
|
||||
namespace Example_BackgroundExecution.Screens.iPhone
|
||||
{
|
||||
public partial class HomeScreen_iPhone : UIViewController
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
// The IntPtr and initWithCoder constructors are required for items that need
|
||||
// to be able to be created from a xib rather than from managed code
|
||||
|
||||
public HomeScreen_iPhone (IntPtr handle) : base(handle)
|
||||
{
|
||||
}
|
||||
|
||||
[Export("initWithCoder:")]
|
||||
public HomeScreen_iPhone (NSCoder coder) : base(coder)
|
||||
{
|
||||
}
|
||||
|
||||
public HomeScreen_iPhone () : base("HomeScreen_iPhone", null)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
this.Title = "Background Execution";
|
||||
|
||||
this.btnStartLongRunningTask.TouchUpInside += (s, e) => {
|
||||
ThreadStart ts = new ThreadStart ( () => { this.DoSomething(); });
|
||||
ts.Invoke();
|
||||
};
|
||||
}
|
||||
|
||||
public void DoSomething ()
|
||||
{
|
||||
// register our background task
|
||||
int taskID = UIApplication.SharedApplication.BeginBackgroundTask ( () => { this.BackgroundTaskExpiring (); });
|
||||
|
||||
Console.WriteLine ("Starting background task " + taskID.ToString ());
|
||||
|
||||
// sleep for five seconds
|
||||
Thread.Sleep (5000);
|
||||
|
||||
Console.WriteLine ("Background task " + taskID.ToString () + " completed.");
|
||||
|
||||
// mark our background task as complete
|
||||
UIApplication.SharedApplication.EndBackgroundTask (taskID);
|
||||
}
|
||||
|
||||
public void BackgroundTaskExpiring ()
|
||||
{
|
||||
Console.WriteLine ("Running out of time to complete you background task!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
47
BackgroundExecution/BackgroundExecution/Screens/iPhone/HomeScreen_iPhone.xib.designer.cs
сгенерированный
Normal file
|
@ -0,0 +1,47 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// <autogenerated>
|
||||
// This code was generated by a tool.
|
||||
// Mono Runtime Version: 2.0.50727.1433
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </autogenerated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
namespace Example_BackgroundExecution.Screens.iPhone {
|
||||
|
||||
|
||||
// Base type probably should be MonoTouch.UIKit.UIViewController or subclass
|
||||
[MonoTouch.Foundation.Register("HomeScreen_iPhone")]
|
||||
public partial class HomeScreen_iPhone {
|
||||
|
||||
private MonoTouch.UIKit.UIView __mt_view;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnStartLongRunningTask;
|
||||
|
||||
#pragma warning disable 0169
|
||||
[MonoTouch.Foundation.Connect("view")]
|
||||
private MonoTouch.UIKit.UIView view {
|
||||
get {
|
||||
this.__mt_view = ((MonoTouch.UIKit.UIView)(this.GetNativeField("view")));
|
||||
return this.__mt_view;
|
||||
}
|
||||
set {
|
||||
this.__mt_view = value;
|
||||
this.SetNativeField("view", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnStartLongRunningTask")]
|
||||
private MonoTouch.UIKit.UIButton btnStartLongRunningTask {
|
||||
get {
|
||||
this.__mt_btnStartLongRunningTask = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnStartLongRunningTask")));
|
||||
return this.__mt_btnStartLongRunningTask;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnStartLongRunningTask = value;
|
||||
this.SetNativeField("btnStartLongRunningTask", value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<SampleMetadata>
|
||||
<ID>e797f7f2-5132-4aec-8605-dcfd3989a4a5</ID>
|
||||
<IsFullApplication>false</IsFullApplication>
|
||||
<Level>Beginning</Level>
|
||||
<Tags>Multitasking</Tags>
|
||||
</SampleMetadata>
|
|
@ -0,0 +1,34 @@
|
|||
Core Animation
|
||||
=================
|
||||
|
||||
This sample illustrates how to develop multitasking (background execution) aware applications in MonoTouch. The AppDelegate class illustrates the application lifecycle methods that should be overridden in order to gracefully handle state changes. Additionally, it illustrates how to register a long running task that will finish executing even though the app is put in a background state.
|
||||
|
||||
The home screen has a button that will launch a background task that will execute even if the app is backgrounded.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
The samples are licensed under the MIT X11 license:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Bryan Costanich
|
После Ширина: | Высота: | Размер: 125 KiB |
|
@ -0,0 +1,26 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoreLocation", "CoreLocation\CoreLocation.csproj", "{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Release|iPhone = Release|iPhone
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = CoreLocation\CoreLocation.csproj
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.Foundation;
|
||||
|
||||
namespace Example_CoreLocation
|
||||
{
|
||||
[Register("AppDelegate")]
|
||||
public class AppDelegate : UIApplicationDelegate
|
||||
{
|
||||
#region -= declarations and properties =-
|
||||
|
||||
protected UIWindow window;
|
||||
protected MainViewController mainViewController;
|
||||
|
||||
#endregion
|
||||
|
||||
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
|
||||
{
|
||||
// create our window
|
||||
window = new UIWindow (UIScreen.MainScreen.Bounds);
|
||||
window.MakeKeyAndVisible ();
|
||||
|
||||
// instantiate and load our main screen onto the window
|
||||
mainViewController = new MainViewController ();
|
||||
window.RootViewController = mainViewController;
|
||||
|
||||
//
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_CoreLocation
|
||||
{
|
||||
public class Application// : UIApplication
|
||||
{
|
||||
public static void Main (string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine (e.ToString ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{6EC86F9F-D4AE-4BFA-8936-11B3ECD60B01}</ProjectGuid>
|
||||
<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>Example_CoreLocation</RootNamespace>
|
||||
<AssemblyName>Example_CoreLocation</AssemblyName>
|
||||
<MtouchSdkVersion>4.0</MtouchSdkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="monotouch" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<Compile Include="AppDelegate.cs" />
|
||||
<Compile Include="Application.cs" />
|
||||
<Compile Include="MainScreen\IMainScreen.cs" />
|
||||
<Compile Include="MainScreen\MainViewController.cs" />
|
||||
<Compile Include="MainScreen\MainViewController_iPad.xib.cs">
|
||||
<DependentUpon>MainViewController_iPad.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainScreen\MainViewController_iPad.xib.designer.cs">
|
||||
<DependentUpon>MainViewController_iPad.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainScreen\MainViewController_iPhone.xib.cs">
|
||||
<DependentUpon>MainViewController_iPhone.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainScreen\MainViewController_iPhone.xib.designer.cs">
|
||||
<DependentUpon>MainViewController_iPhone.xib</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Images\Icons\29_icon.png" />
|
||||
<Content Include="Images\Icons\50_icon.png" />
|
||||
<Content Include="Images\Icons\57_icon.png" />
|
||||
<Content Include="Images\Icons\58_icon.png" />
|
||||
<Content Include="Images\Icons\72_icon.png" />
|
||||
<Content Include="Images\Icons\114_icon.png" />
|
||||
<Content Include="Images\Icons\512_icon.png" />
|
||||
<Content Include="Default-Landscape~ipad.png" />
|
||||
<Content Include="Default-Portrait~ipad.png" />
|
||||
<Content Include="Default.png" />
|
||||
<Content Include="Default%402x.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="MainScreen\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\Icons\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<InterfaceDefinition Include="MainScreen\MainViewController_iPad.xib" xmlns="" />
|
||||
<InterfaceDefinition Include="MainScreen\MainViewController_iPhone.xib" xmlns="" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Info.plist" />
|
||||
</ItemGroup>
|
||||
</Project>
|
После Ширина: | Высота: | Размер: 782 KiB |
После Ширина: | Высота: | Размер: 752 KiB |
После Ширина: | Высота: | Размер: 141 KiB |
После Ширина: | Высота: | Размер: 638 KiB |
После Ширина: | Высота: | Размер: 20 KiB |
После Ширина: | Высота: | Размер: 2.9 KiB |
После Ширина: | Высота: | Размер: 5.8 KiB |
После Ширина: | Высота: | Размер: 318 KiB |
После Ширина: | Высота: | Размер: 7.1 KiB |
После Ширина: | Высота: | Размер: 7.3 KiB |
После Ширина: | Высота: | Размер: 10 KiB |
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Core Location</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Images/Icons/57_icon.png</string>
|
||||
<string>Images/Icons/114_icon.png</string>
|
||||
<string>Images/Icons/72_icon.png</string>
|
||||
<string>Images/Icons/29_icon.png</string>
|
||||
<string>Images/Icons/58_icon.png</string>
|
||||
<string>Images/Icons/50_icon.png</string>
|
||||
<string>Images/Icons/512_icon.png</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>3.0</string>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<string>1</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_CoreLocation
|
||||
{
|
||||
/// <summary>
|
||||
/// This interface is so we can use a different xib for iPhone and iPad from the same code.
|
||||
/// </summary>
|
||||
public interface IMainScreen
|
||||
{
|
||||
UILabel LblAltitude { get; }
|
||||
UILabel LblLatitude { get; }
|
||||
UILabel LblLongitude { get; }
|
||||
UILabel LblCourse { get; }
|
||||
UILabel LblMagneticHeading { get; }
|
||||
UILabel LblSpeed { get; }
|
||||
UILabel LblTrueHeading { get; }
|
||||
UILabel LblDistanceToParis { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.Foundation;
|
||||
using MonoTouch.CoreLocation;
|
||||
using Example_CoreLocation.MainScreen;
|
||||
|
||||
namespace Example_CoreLocation
|
||||
{
|
||||
public class MainViewController : UIViewController
|
||||
{
|
||||
#region -= declarations =-
|
||||
|
||||
MainViewController_iPhone mainViewController_iPhone;
|
||||
MainViewController_iPad mainViewController_iPad;
|
||||
|
||||
IMainScreen mainScreen = null;
|
||||
|
||||
// location stuff
|
||||
CLLocationManager iPhoneLocationManager = null;
|
||||
// uncomment this if you want to use the delegate pattern
|
||||
//LocationDelegate locationDelegate = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= constructors =-
|
||||
//
|
||||
// Constructor invoked from the NIB loader
|
||||
//
|
||||
public MainViewController (IntPtr p) : base(p)
|
||||
{
|
||||
}
|
||||
|
||||
public MainViewController () : base()
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
// all your base
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// load the appropriate view, based on the device type
|
||||
this.LoadViewForDevice ();
|
||||
|
||||
// initialize our location manager and callback handler
|
||||
iPhoneLocationManager = new CLLocationManager ();
|
||||
|
||||
// uncomment this if you want to use the delegate pattern:
|
||||
//locationDelegate = new LocationDelegate (mainScreen);
|
||||
//iPhoneLocationManager.Delegate = locationDelegate;
|
||||
|
||||
// you can set the update threshold and accuracy if you want:
|
||||
//iPhoneLocationManager.DistanceFilter = 10; // move ten meters before updating
|
||||
//iPhoneLocationManager.HeadingFilter = 3; // move 3 degrees before updating
|
||||
|
||||
// you can also set the desired accuracy:
|
||||
iPhoneLocationManager.DesiredAccuracy = 1000; // 1000 meters/1 kilometer
|
||||
// you can also use presets, which simply evalute to a double value:
|
||||
//iPhoneLocationManager.DesiredAccuracy = CLLocation.AccuracyNearestTenMeters;
|
||||
|
||||
// handle the updated location method and update the UI
|
||||
iPhoneLocationManager.UpdatedLocation += (object sender, CLLocationUpdatedEventArgs e) => {
|
||||
mainScreen.LblAltitude.Text = e.NewLocation.Altitude.ToString () + "meters";
|
||||
mainScreen.LblLongitude.Text = e.NewLocation.Coordinate.Longitude.ToString () + "º";
|
||||
mainScreen.LblLatitude.Text = e.NewLocation.Coordinate.Latitude.ToString () + "º";
|
||||
mainScreen.LblCourse.Text = e.NewLocation.Course.ToString () + "º";
|
||||
mainScreen.LblSpeed.Text = e.NewLocation.Speed.ToString () + "meters/s";
|
||||
|
||||
// get the distance from here to paris
|
||||
mainScreen.LblDistanceToParis.Text = (e.NewLocation.DistanceFrom(new CLLocation(48.857, 2.351)) / 1000).ToString() + "km";
|
||||
};
|
||||
|
||||
// handle the updated heading method and update the UI
|
||||
iPhoneLocationManager.UpdatedHeading += (object sender, CLHeadingUpdatedEventArgs e) => {
|
||||
mainScreen.LblMagneticHeading.Text = e.NewHeading.MagneticHeading.ToString () + "º";
|
||||
mainScreen.LblTrueHeading.Text = e.NewHeading.TrueHeading.ToString () + "º";
|
||||
};
|
||||
|
||||
// start updating our location, et. al.
|
||||
if (CLLocationManager.LocationServicesEnabled)
|
||||
iPhoneLocationManager.StartUpdatingLocation ();
|
||||
if (CLLocationManager.HeadingAvailable)
|
||||
iPhoneLocationManager.StartUpdatingHeading ();
|
||||
}
|
||||
|
||||
#region -= protected methods =-
|
||||
|
||||
// Loads either the iPad or iPhone view, based on the current device
|
||||
protected void LoadViewForDevice()
|
||||
{
|
||||
// load the appropriate view based on the device
|
||||
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
|
||||
mainViewController_iPad = new MainViewController_iPad ();
|
||||
this.View.AddSubview (mainViewController_iPad.View);
|
||||
mainScreen = mainViewController_iPad as IMainScreen;
|
||||
} else {
|
||||
mainViewController_iPhone = new MainViewController_iPhone ();
|
||||
this.View.AddSubview (mainViewController_iPhone.View);
|
||||
mainScreen = mainViewController_iPhone as IMainScreen;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// If you don't want to use events, you could define a delegate to do the
|
||||
// updates as well, as shown here.
|
||||
public class LocationDelegate : CLLocationManagerDelegate
|
||||
{
|
||||
IMainScreen ms;
|
||||
|
||||
public LocationDelegate (IMainScreen mainScreen) : base()
|
||||
{
|
||||
ms = mainScreen;
|
||||
}
|
||||
|
||||
public override void UpdatedLocation (CLLocationManager manager, CLLocation newLocation, CLLocation oldLocation)
|
||||
{
|
||||
ms.LblAltitude.Text = newLocation.Altitude.ToString () + "meters";
|
||||
ms.LblLongitude.Text = newLocation.Coordinate.Longitude.ToString () + "º";
|
||||
ms.LblLatitude.Text = newLocation.Coordinate.Latitude.ToString () + "º";
|
||||
ms.LblCourse.Text = newLocation.Course.ToString () + "º";
|
||||
ms.LblSpeed.Text = newLocation.Speed.ToString () + "meters/s";
|
||||
|
||||
// get the distance from here to paris
|
||||
ms.LblDistanceToParis.Text = (newLocation.DistanceFrom(new CLLocation(48.857, 2.351)) / 1000).ToString() + "km";
|
||||
}
|
||||
|
||||
public override void UpdatedHeading (CLLocationManager manager, CLHeading newHeading)
|
||||
{
|
||||
ms.LblMagneticHeading.Text = newHeading.MagneticHeading.ToString () + "º";
|
||||
ms.LblTrueHeading.Text = newHeading.TrueHeading.ToString () + "º";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,763 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">768</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">117</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="711762367">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUILabel" id="123106650">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{76, 57}, {66, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Latitude:</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="184672039">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="852931344">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{308, 57}, {80, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Longitude:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="954528809">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{276, 86}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Course:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="376977755">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{80, 86}, {62, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Altitude:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="603906923">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 57}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[lat]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="685299897">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{396, 57}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[lon]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="296716788">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 86}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[alt]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="317567968">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{396, 86}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[course]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="518971304">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 115}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Speed:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="568645197">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 115}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[speed]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="395407107">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 196}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Mag. Heading:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="283876731">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 196}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[mag head]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="310875943">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 283}, {226, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Paris (lat 48.857, long 2.351):</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="399714698">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{264, 283}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[distance to paris]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="568047389">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{308, 196}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">True Heading:</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="971747263">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{428, 196}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">[true head]</string>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="28750116">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 20}, {107, 31}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Location:</string>
|
||||
<object class="NSFont" key="IBUIFont" id="559137337">
|
||||
<string key="NSName">HelveticaNeue-Bold</string>
|
||||
<double key="NSSize">24</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="482539481">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 244}, {144, 31}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Distance To:</string>
|
||||
<reference key="IBUIFont" ref="559137337"/>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="81890198">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 159}, {109, 31}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Heading:</string>
|
||||
<reference key="IBUIFont" ref="559137337"/>
|
||||
<reference key="IBUITextColor" ref="184672039"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{768, 1004}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
||||
<int key="IBUIStatusBarStyle">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblAltitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="296716788"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblCourse</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="317567968"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblLatitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="603906923"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblLongitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="685299897"/>
|
||||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblMagneticHeading</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="283876731"/>
|
||||
</object>
|
||||
<int key="connectionID">28</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblSpeed</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="568645197"/>
|
||||
</object>
|
||||
<int key="connectionID">29</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblTrueHeading</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="971747263"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblDistanceToParis</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="399714698"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="123106650"/>
|
||||
<reference ref="603906923"/>
|
||||
<reference ref="28750116"/>
|
||||
<reference ref="852931344"/>
|
||||
<reference ref="685299897"/>
|
||||
<reference ref="376977755"/>
|
||||
<reference ref="296716788"/>
|
||||
<reference ref="954528809"/>
|
||||
<reference ref="317567968"/>
|
||||
<reference ref="518971304"/>
|
||||
<reference ref="568645197"/>
|
||||
<reference ref="81890198"/>
|
||||
<reference ref="395407107"/>
|
||||
<reference ref="283876731"/>
|
||||
<reference ref="568047389"/>
|
||||
<reference ref="971747263"/>
|
||||
<reference ref="482539481"/>
|
||||
<reference ref="310875943"/>
|
||||
<reference ref="399714698"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="711762367"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="123106650"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9</int>
|
||||
<reference key="object" ref="852931344"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="954528809"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="376977755"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="603906923"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="685299897"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">14</int>
|
||||
<reference key="object" ref="296716788"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="317567968"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="518971304"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">17</int>
|
||||
<reference key="object" ref="568645197"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="395407107"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="283876731"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="568047389"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="971747263"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="28750116"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="81890198"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">31</int>
|
||||
<reference key="object" ref="482539481"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">32</int>
|
||||
<reference key="object" ref="310875943"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">33</int>
|
||||
<reference key="object" ref="399714698"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBLastUsedUIStatusBarStylesToTargetRuntimesMap</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>11.IBPluginDependency</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>13.IBPluginDependency</string>
|
||||
<string>14.IBPluginDependency</string>
|
||||
<string>15.IBPluginDependency</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>17.IBPluginDependency</string>
|
||||
<string>18.IBPluginDependency</string>
|
||||
<string>19.IBPluginDependency</string>
|
||||
<string>20.IBPluginDependency</string>
|
||||
<string>21.IBPluginDependency</string>
|
||||
<string>22.IBPluginDependency</string>
|
||||
<string>23.IBPluginDependency</string>
|
||||
<string>31.IBPluginDependency</string>
|
||||
<string>32.IBPluginDependency</string>
|
||||
<string>33.IBPluginDependency</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
<string>9.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>MainViewController_iPad</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{228, 57}, {768, 1024}}</string>
|
||||
<object class="NSMutableDictionary">
|
||||
<string key="NS.key.0">IBCocoaTouchFramework</string>
|
||||
<integer value="0" key="NS.object.0"/>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">34</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MainViewController_iPad</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>lblAltitude</string>
|
||||
<string>lblCourse</string>
|
||||
<string>lblDistanceToParis</string>
|
||||
<string>lblLatitude</string>
|
||||
<string>lblLongitude</string>
|
||||
<string>lblMagneticHeading</string>
|
||||
<string>lblSpeed</string>
|
||||
<string>lblTrueHeading</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>lblAltitude</string>
|
||||
<string>lblCourse</string>
|
||||
<string>lblDistanceToParis</string>
|
||||
<string>lblLatitude</string>
|
||||
<string>lblLongitude</string>
|
||||
<string>lblMagneticHeading</string>
|
||||
<string>lblSpeed</string>
|
||||
<string>lblTrueHeading</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblAltitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblCourse</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblDistanceToParis</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblLatitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblLongitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblMagneticHeading</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblSpeed</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblTrueHeading</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="768" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">117</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -0,0 +1,73 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MonoTouch.Foundation;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_CoreLocation.MainScreen
|
||||
{
|
||||
public partial class MainViewController_iPad : UIViewController, IMainScreen
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
// The IntPtr and initWithCoder constructors are required for controllers that need
|
||||
// to be able to be created from a xib rather than from managed code
|
||||
|
||||
public MainViewController_iPad (IntPtr handle) : base(handle)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
[Export("initWithCoder:")]
|
||||
public MainViewController_iPad (NSCoder coder) : base(coder)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
public MainViewController_iPad () : base("MainViewController_iPad", null)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
void Initialize ()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public UILabel LblAltitude
|
||||
{
|
||||
get { return this.lblAltitude; }
|
||||
}
|
||||
public UILabel LblLatitude
|
||||
{
|
||||
get { return this.lblLatitude; }
|
||||
}
|
||||
public UILabel LblLongitude
|
||||
{
|
||||
get { return this.lblLongitude; }
|
||||
}
|
||||
public UILabel LblCourse
|
||||
{
|
||||
get { return this.lblCourse; }
|
||||
}
|
||||
public UILabel LblMagneticHeading
|
||||
{
|
||||
get { return this.lblMagneticHeading; }
|
||||
}
|
||||
public UILabel LblSpeed
|
||||
{
|
||||
get { return this.lblSpeed; }
|
||||
}
|
||||
public UILabel LblTrueHeading
|
||||
{
|
||||
get { return this.lblTrueHeading; }
|
||||
}
|
||||
public UILabel LblDistanceToParis
|
||||
{
|
||||
get { return this.lblDistanceToParis; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
145
CoreLocation/CoreLocation/MainScreen/MainViewController_iPad.xib.designer.cs
сгенерированный
Executable file
|
@ -0,0 +1,145 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// <autogenerated>
|
||||
// This code was generated by a tool.
|
||||
// Mono Runtime Version: 2.0.50727.1433
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </autogenerated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
namespace Example_CoreLocation.MainScreen {
|
||||
|
||||
|
||||
// Base type probably should be MonoTouch.UIKit.UIViewController or subclass
|
||||
[MonoTouch.Foundation.Register("MainViewController_iPad")]
|
||||
public partial class MainViewController_iPad {
|
||||
|
||||
private MonoTouch.UIKit.UIView __mt_view;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblAltitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblCourse;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblLatitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblLongitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblMagneticHeading;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblSpeed;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblTrueHeading;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblDistanceToParis;
|
||||
|
||||
#pragma warning disable 0169
|
||||
[MonoTouch.Foundation.Connect("view")]
|
||||
private MonoTouch.UIKit.UIView view {
|
||||
get {
|
||||
this.__mt_view = ((MonoTouch.UIKit.UIView)(this.GetNativeField("view")));
|
||||
return this.__mt_view;
|
||||
}
|
||||
set {
|
||||
this.__mt_view = value;
|
||||
this.SetNativeField("view", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblAltitude")]
|
||||
private MonoTouch.UIKit.UILabel lblAltitude {
|
||||
get {
|
||||
this.__mt_lblAltitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblAltitude")));
|
||||
return this.__mt_lblAltitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblAltitude = value;
|
||||
this.SetNativeField("lblAltitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblCourse")]
|
||||
private MonoTouch.UIKit.UILabel lblCourse {
|
||||
get {
|
||||
this.__mt_lblCourse = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblCourse")));
|
||||
return this.__mt_lblCourse;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblCourse = value;
|
||||
this.SetNativeField("lblCourse", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblLatitude")]
|
||||
private MonoTouch.UIKit.UILabel lblLatitude {
|
||||
get {
|
||||
this.__mt_lblLatitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblLatitude")));
|
||||
return this.__mt_lblLatitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblLatitude = value;
|
||||
this.SetNativeField("lblLatitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblLongitude")]
|
||||
private MonoTouch.UIKit.UILabel lblLongitude {
|
||||
get {
|
||||
this.__mt_lblLongitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblLongitude")));
|
||||
return this.__mt_lblLongitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblLongitude = value;
|
||||
this.SetNativeField("lblLongitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblMagneticHeading")]
|
||||
private MonoTouch.UIKit.UILabel lblMagneticHeading {
|
||||
get {
|
||||
this.__mt_lblMagneticHeading = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblMagneticHeading")));
|
||||
return this.__mt_lblMagneticHeading;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblMagneticHeading = value;
|
||||
this.SetNativeField("lblMagneticHeading", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblSpeed")]
|
||||
private MonoTouch.UIKit.UILabel lblSpeed {
|
||||
get {
|
||||
this.__mt_lblSpeed = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblSpeed")));
|
||||
return this.__mt_lblSpeed;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblSpeed = value;
|
||||
this.SetNativeField("lblSpeed", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblTrueHeading")]
|
||||
private MonoTouch.UIKit.UILabel lblTrueHeading {
|
||||
get {
|
||||
this.__mt_lblTrueHeading = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblTrueHeading")));
|
||||
return this.__mt_lblTrueHeading;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblTrueHeading = value;
|
||||
this.SetNativeField("lblTrueHeading", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblDistanceToParis")]
|
||||
private MonoTouch.UIKit.UILabel lblDistanceToParis {
|
||||
get {
|
||||
this.__mt_lblDistanceToParis = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblDistanceToParis")));
|
||||
return this.__mt_lblDistanceToParis;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblDistanceToParis = value;
|
||||
this.SetNativeField("lblDistanceToParis", value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,763 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">768</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">117</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="711762367">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUILabel" id="990245184">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{76, 57}, {66, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Latitude:</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="598183245">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="528769690">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{62, 86}, {80, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Longitude:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="511378272">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 144}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Course:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="931380009">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{80, 115}, {62, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Altitude:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="995723869">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 57}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[lat]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="727530119">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 86}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[lon]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="636456941">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 115}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[alt]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="741503706">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 144}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[course]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="87776119">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 173}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Speed:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="807652957">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 173}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[speed]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="1015734015">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 248}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Mag. Heading:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="588335155">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 248}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[mag head]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="585449781">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 277}, {112, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">True Heading:</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="728301204">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{150, 277}, {150, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[true head]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="65217568">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 20}, {98, 29}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Location:</string>
|
||||
<object class="NSFont" key="IBUIFont" id="406536139">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">24</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="145887418">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 211}, {109, 29}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Heading:</string>
|
||||
<reference key="IBUIFont" ref="406536139"/>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="1063454895">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 308}, {136, 29}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Distance To:</string>
|
||||
<reference key="IBUIFont" ref="406536139"/>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="568759085">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 345}, {226, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Paris (lat 48.857, long 2.351):</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="549177644">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 374}, {226, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">[distance to paris]</string>
|
||||
<reference key="IBUITextColor" ref="598183245"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblAltitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="636456941"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblCourse</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="741503706"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblLatitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="995723869"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblLongitude</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="727530119"/>
|
||||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblMagneticHeading</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="588335155"/>
|
||||
</object>
|
||||
<int key="connectionID">28</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblSpeed</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="807652957"/>
|
||||
</object>
|
||||
<int key="connectionID">29</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblTrueHeading</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="728301204"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">lblDistanceToParis</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="549177644"/>
|
||||
</object>
|
||||
<int key="connectionID">35</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="990245184"/>
|
||||
<reference ref="528769690"/>
|
||||
<reference ref="511378272"/>
|
||||
<reference ref="931380009"/>
|
||||
<reference ref="995723869"/>
|
||||
<reference ref="727530119"/>
|
||||
<reference ref="636456941"/>
|
||||
<reference ref="741503706"/>
|
||||
<reference ref="87776119"/>
|
||||
<reference ref="807652957"/>
|
||||
<reference ref="1015734015"/>
|
||||
<reference ref="588335155"/>
|
||||
<reference ref="585449781"/>
|
||||
<reference ref="728301204"/>
|
||||
<reference ref="65217568"/>
|
||||
<reference ref="145887418"/>
|
||||
<reference ref="568759085"/>
|
||||
<reference ref="1063454895"/>
|
||||
<reference ref="549177644"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="711762367"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="990245184"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9</int>
|
||||
<reference key="object" ref="528769690"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="511378272"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="931380009"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="995723869"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="727530119"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">14</int>
|
||||
<reference key="object" ref="636456941"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="741503706"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="87776119"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">17</int>
|
||||
<reference key="object" ref="807652957"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="1015734015"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="588335155"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="585449781"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="728301204"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="65217568"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="145887418"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">31</int>
|
||||
<reference key="object" ref="568759085"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">32</int>
|
||||
<reference key="object" ref="549177644"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">34</int>
|
||||
<reference key="object" ref="1063454895"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>11.IBPluginDependency</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>13.IBPluginDependency</string>
|
||||
<string>14.IBPluginDependency</string>
|
||||
<string>15.IBPluginDependency</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>17.IBPluginDependency</string>
|
||||
<string>18.IBPluginDependency</string>
|
||||
<string>19.IBPluginDependency</string>
|
||||
<string>20.IBPluginDependency</string>
|
||||
<string>21.IBPluginDependency</string>
|
||||
<string>22.IBPluginDependency</string>
|
||||
<string>23.IBPluginDependency</string>
|
||||
<string>31.IBPluginDependency</string>
|
||||
<string>32.IBPluginDependency</string>
|
||||
<string>34.IBPluginDependency</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
<string>9.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>MainViewController_iPhone</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{352, 655}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">35</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MainViewController_iPhone</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>lblAltitude</string>
|
||||
<string>lblCourse</string>
|
||||
<string>lblDistanceToParis</string>
|
||||
<string>lblLatitude</string>
|
||||
<string>lblLongitude</string>
|
||||
<string>lblMagneticHeading</string>
|
||||
<string>lblSpeed</string>
|
||||
<string>lblTrueHeading</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>lblAltitude</string>
|
||||
<string>lblCourse</string>
|
||||
<string>lblDistanceToParis</string>
|
||||
<string>lblLatitude</string>
|
||||
<string>lblLongitude</string>
|
||||
<string>lblMagneticHeading</string>
|
||||
<string>lblSpeed</string>
|
||||
<string>lblTrueHeading</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblAltitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblCourse</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblDistanceToParis</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblLatitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblLongitude</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblMagneticHeading</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblSpeed</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">lblTrueHeading</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">view</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="768" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">117</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MonoTouch.Foundation;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_CoreLocation.MainScreen
|
||||
{
|
||||
public partial class MainViewController_iPhone : UIViewController, IMainScreen
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
// The IntPtr and initWithCoder constructors are required for controllers that need
|
||||
// to be able to be created from a xib rather than from managed code
|
||||
|
||||
public MainViewController_iPhone (IntPtr handle) : base(handle)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
[Export("initWithCoder:")]
|
||||
public MainViewController_iPhone (NSCoder coder) : base(coder)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
public MainViewController_iPhone () : base("MainViewController_iPhone", null)
|
||||
{
|
||||
Initialize ();
|
||||
}
|
||||
|
||||
void Initialize ()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public UILabel LblAltitude
|
||||
{
|
||||
get { return this.lblAltitude; }
|
||||
}
|
||||
public UILabel LblLatitude
|
||||
{
|
||||
get { return this.lblLatitude; }
|
||||
}
|
||||
public UILabel LblLongitude
|
||||
{
|
||||
get { return this.lblLongitude; }
|
||||
}
|
||||
public UILabel LblCourse
|
||||
{
|
||||
get { return this.lblCourse; }
|
||||
}
|
||||
public UILabel LblMagneticHeading
|
||||
{
|
||||
get { return this.lblMagneticHeading; }
|
||||
}
|
||||
public UILabel LblSpeed
|
||||
{
|
||||
get { return this.lblSpeed; }
|
||||
}
|
||||
public UILabel LblTrueHeading
|
||||
{
|
||||
get { return this.lblTrueHeading; }
|
||||
}
|
||||
public UILabel LblDistanceToParis
|
||||
{
|
||||
get { return this.lblDistanceToParis; }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
145
CoreLocation/CoreLocation/MainScreen/MainViewController_iPhone.xib.designer.cs
сгенерированный
Executable file
|
@ -0,0 +1,145 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// <autogenerated>
|
||||
// This code was generated by a tool.
|
||||
// Mono Runtime Version: 2.0.50727.1433
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </autogenerated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
namespace Example_CoreLocation.MainScreen {
|
||||
|
||||
|
||||
// Base type probably should be MonoTouch.UIKit.UIViewController or subclass
|
||||
[MonoTouch.Foundation.Register("MainViewController_iPhone")]
|
||||
public partial class MainViewController_iPhone {
|
||||
|
||||
private MonoTouch.UIKit.UIView __mt_view;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblAltitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblCourse;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblLatitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblLongitude;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblMagneticHeading;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblSpeed;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblTrueHeading;
|
||||
|
||||
private MonoTouch.UIKit.UILabel __mt_lblDistanceToParis;
|
||||
|
||||
#pragma warning disable 0169
|
||||
[MonoTouch.Foundation.Connect("view")]
|
||||
private MonoTouch.UIKit.UIView view {
|
||||
get {
|
||||
this.__mt_view = ((MonoTouch.UIKit.UIView)(this.GetNativeField("view")));
|
||||
return this.__mt_view;
|
||||
}
|
||||
set {
|
||||
this.__mt_view = value;
|
||||
this.SetNativeField("view", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblAltitude")]
|
||||
private MonoTouch.UIKit.UILabel lblAltitude {
|
||||
get {
|
||||
this.__mt_lblAltitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblAltitude")));
|
||||
return this.__mt_lblAltitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblAltitude = value;
|
||||
this.SetNativeField("lblAltitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblCourse")]
|
||||
private MonoTouch.UIKit.UILabel lblCourse {
|
||||
get {
|
||||
this.__mt_lblCourse = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblCourse")));
|
||||
return this.__mt_lblCourse;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblCourse = value;
|
||||
this.SetNativeField("lblCourse", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblLatitude")]
|
||||
private MonoTouch.UIKit.UILabel lblLatitude {
|
||||
get {
|
||||
this.__mt_lblLatitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblLatitude")));
|
||||
return this.__mt_lblLatitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblLatitude = value;
|
||||
this.SetNativeField("lblLatitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblLongitude")]
|
||||
private MonoTouch.UIKit.UILabel lblLongitude {
|
||||
get {
|
||||
this.__mt_lblLongitude = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblLongitude")));
|
||||
return this.__mt_lblLongitude;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblLongitude = value;
|
||||
this.SetNativeField("lblLongitude", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblMagneticHeading")]
|
||||
private MonoTouch.UIKit.UILabel lblMagneticHeading {
|
||||
get {
|
||||
this.__mt_lblMagneticHeading = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblMagneticHeading")));
|
||||
return this.__mt_lblMagneticHeading;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblMagneticHeading = value;
|
||||
this.SetNativeField("lblMagneticHeading", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblSpeed")]
|
||||
private MonoTouch.UIKit.UILabel lblSpeed {
|
||||
get {
|
||||
this.__mt_lblSpeed = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblSpeed")));
|
||||
return this.__mt_lblSpeed;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblSpeed = value;
|
||||
this.SetNativeField("lblSpeed", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblTrueHeading")]
|
||||
private MonoTouch.UIKit.UILabel lblTrueHeading {
|
||||
get {
|
||||
this.__mt_lblTrueHeading = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblTrueHeading")));
|
||||
return this.__mt_lblTrueHeading;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblTrueHeading = value;
|
||||
this.SetNativeField("lblTrueHeading", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("lblDistanceToParis")]
|
||||
private MonoTouch.UIKit.UILabel lblDistanceToParis {
|
||||
get {
|
||||
this.__mt_lblDistanceToParis = ((MonoTouch.UIKit.UILabel)(this.GetNativeField("lblDistanceToParis")));
|
||||
return this.__mt_lblDistanceToParis;
|
||||
}
|
||||
set {
|
||||
this.__mt_lblDistanceToParis = value;
|
||||
this.SetNativeField("lblDistanceToParis", value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<SampleMetadata>
|
||||
<ID>747bae48-05f5-4dec-a9fa-4cb979056b2d</ID>
|
||||
<IsFullApplication>false</IsFullApplication>
|
||||
<Level>Intermediate</Level>
|
||||
<Tags>Location Services</Tags>
|
||||
</SampleMetadata>
|
|
@ -0,0 +1,32 @@
|
|||
Core Animation
|
||||
=================
|
||||
|
||||
This sample illustrates how to retrieve location, orientation, and velocity data from the device using the Core Location API exposed in MonoTouch. It covers initializing the CLLocationManager, configuring update frequency and accuracy, and receiving updates using both the event and delegate pattern. It also illustrates how to get retrieve "Distance To" information.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
The samples are licensed under the MIT X11 license:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Bryan Costanich
|
После Ширина: | Высота: | Размер: 220 KiB |
После Ширина: | Высота: | Размер: 103 KiB |
|
@ -0,0 +1,26 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Drawing", "Drawing\Drawing.csproj", "{3C05703F-0141-4F1A-A986-DFC409288411}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Release|iPhone = Release|iPhone
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{3C05703F-0141-4F1A-A986-DFC409288411}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
EndGlobalSection
|
||||
GlobalSection(MonoDevelopProperties) = preSolution
|
||||
StartupItem = Drawing\Drawing.csproj
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.Foundation;
|
||||
|
||||
namespace Example_Drawing
|
||||
{
|
||||
[Register("AppDelegate")]
|
||||
public class AppDelegate : UIApplicationDelegate
|
||||
{
|
||||
#region -= declarations and properties =-
|
||||
|
||||
protected UIWindow window;
|
||||
protected UINavigationController mainNavController;
|
||||
protected Example_Drawing.Screens.iPad.Home.HomeScreen iPadHome;
|
||||
|
||||
#endregion
|
||||
|
||||
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
|
||||
{
|
||||
// create our window
|
||||
window = new UIWindow (UIScreen.MainScreen.Bounds);
|
||||
window.MakeKeyAndVisible ();
|
||||
|
||||
// instantiate our main navigatin controller and add it's view to the window
|
||||
mainNavController = new UINavigationController ();
|
||||
|
||||
iPadHome = new Example_Drawing.Screens.iPad.Home.HomeScreen ();
|
||||
mainNavController.PushViewController (iPadHome, false);
|
||||
|
||||
window.RootViewController = mainNavController;
|
||||
|
||||
//
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing
|
||||
{
|
||||
public class Application// : UIApplication
|
||||
{
|
||||
public static void Main (string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine (e.ToString ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
После Ширина: | Высота: | Размер: 782 KiB |
После Ширина: | Высота: | Размер: 752 KiB |
После Ширина: | Высота: | Размер: 141 KiB |
После Ширина: | Высота: | Размер: 638 KiB |
|
@ -0,0 +1,147 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3C05703F-0141-4F1A-A986-DFC409288411}</ProjectGuid>
|
||||
<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>Example_Drawing</RootNamespace>
|
||||
<AssemblyName>Example_Drawing</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchI18n />
|
||||
<MtouchUseArmv7>false</MtouchUseArmv7>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchLink>None</MtouchLink>
|
||||
<MtouchI18n />
|
||||
<MtouchUseArmv7>false</MtouchUseArmv7>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<MtouchDebug>true</MtouchDebug>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchI18n />
|
||||
<MtouchUseArmv7>false</MtouchUseArmv7>
|
||||
<IpaPackageName />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchI18n />
|
||||
<MtouchUseArmv7>false</MtouchUseArmv7>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="monotouch" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Screens\" />
|
||||
<Folder Include="Images\Icons\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Images\" />
|
||||
<Folder Include="Screens\iPad\" />
|
||||
<Folder Include="Screens\iPad\Home\" />
|
||||
<Folder Include="Screens\iPad\DrawRectVsPath\" />
|
||||
<Folder Include="Screens\iPad\DrawOffScreenUsingCGBitmapContext\" />
|
||||
<Folder Include="Screens\iPad\Layers\" />
|
||||
<Folder Include="Screens\iPad\CoordinatesOnScreen\" />
|
||||
<Folder Include="Screens\iPad\CoordinatesOffScreen\" />
|
||||
<Folder Include="Screens\iPad\OnScreenUncorrectedTextRotation\" />
|
||||
<Folder Include="Screens\iPad\FlagOffScreen\" />
|
||||
<Folder Include="Screens\iPad\Images\" />
|
||||
<Folder Include="Screens\iPad\ColorPattern\" />
|
||||
<Folder Include="Screens\iPad\StencilPattern\" />
|
||||
<Folder Include="Screens\iPad\Shadows\" />
|
||||
<Folder Include="Screens\iPad\HitTesting\" />
|
||||
<Folder Include="Screens\iPad\TouchDrawing\" />
|
||||
<Folder Include="Screens\iPad\FlagOnScreen\" />
|
||||
<Folder Include="Screens\iPad\Transformations\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Images\Icons\29_icon.png" />
|
||||
<Content Include="Images\Icons\50_icon.png" />
|
||||
<Content Include="Images\Icons\57_icon.png" />
|
||||
<Content Include="Images\Icons\58_icon.png" />
|
||||
<Content Include="Images\Icons\72_icon.png" />
|
||||
<Content Include="Images\Icons\114_icon.png" />
|
||||
<Content Include="Images\Icons\512_icon.png" />
|
||||
<Content Include="Default-Landscape~ipad.png" />
|
||||
<Content Include="Default-Portrait~ipad.png" />
|
||||
<Content Include="Default.png" />
|
||||
<Content Include="Default%402x.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AppDelegate.cs" />
|
||||
<Compile Include="Application.cs" />
|
||||
<Compile Include="Screens\iPad\Home\HomeScreen.xib.cs">
|
||||
<DependentUpon>HomeScreen.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Screens\iPad\Home\HomeScreen.xib.designer.cs">
|
||||
<DependentUpon>HomeScreen.xib</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Screens\iPad\DrawRectVsPath\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\DrawRectVsPath\View.cs" />
|
||||
<Compile Include="Screens\iPad\DrawOffScreenUsingCGBitmapContext\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\Layers\View.cs" />
|
||||
<Compile Include="Screens\iPad\Layers\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\CoordinatesOffScreen\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\CoordinatesOnScreen\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\CoordinatesOnScreen\View.cs" />
|
||||
<Compile Include="Screens\iPad\OnScreenUncorrectedTextRotation\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\OnScreenUncorrectedTextRotation\View.cs" />
|
||||
<Compile Include="Screens\iPad\FlagOffScreen\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\Images\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\ColorPattern\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\StencilPattern\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\Shadows\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\HitTesting\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\HitTesting\View.cs" />
|
||||
<Compile Include="Screens\iPad\TouchDrawing\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\TouchDrawing\View.cs" />
|
||||
<Compile Include="Screens\iPad\FlagOnScreen\Controller.cs" />
|
||||
<Compile Include="Screens\iPad\FlagOnScreen\View.cs" />
|
||||
<Compile Include="Screens\iPad\Transformations\Controller.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<InterfaceDefinition Include="Screens\iPad\Home\HomeScreen.xib" />
|
||||
<InterfaceDefinition Include="" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Info.plist" />
|
||||
</ItemGroup>
|
||||
</Project>
|
После Ширина: | Высота: | Размер: 20 KiB |
После Ширина: | Высота: | Размер: 2.9 KiB |
После Ширина: | Высота: | Размер: 5.8 KiB |
После Ширина: | Высота: | Размер: 318 KiB |
После Ширина: | Высота: | Размер: 7.1 KiB |
После Ширина: | Высота: | Размер: 7.3 KiB |
После Ширина: | Высота: | Размер: 10 KiB |
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Drawing</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Images/Icons/Apress-57x57.png</string>
|
||||
<string>Images/Icons/Apress-114x114.png</string>
|
||||
<string>Images/Icons/Apress-72x72.png</string>
|
||||
<string>Images/Icons/Apress-29x29.png</string>
|
||||
<string>Images/Icons/Apress-58x58.png</string>
|
||||
<string>Images/Icons/Apress-50x50.png</string>
|
||||
<string>Images/Icons/72_icon.png</string>
|
||||
<string>Images/Icons/50_icon.png</string>
|
||||
<string>Images/Icons/29_icon.png</string>
|
||||
<string>Images/Icons/512_icon.png</string>
|
||||
</array>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>4.3</string>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<string>2</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,94 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.ColorPattern
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (View.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero
|
||||
, (int)bitmapSize.Width, (int)bitmapSize.Height, 8
|
||||
, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB ()
|
||||
, CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
// declare vars
|
||||
RectangleF patternRect = new RectangleF (0, 0, 16, 16);
|
||||
|
||||
// set the color space of our fill to be the patter colorspace
|
||||
context.SetFillColorSpace (CGColorSpace.CreatePattern (null));
|
||||
|
||||
// create a new pattern
|
||||
CGPattern pattern = new CGPattern (patternRect
|
||||
, CGAffineTransform.MakeRotation (.3f), 16, 16, CGPatternTiling.NoDistortion
|
||||
, true, DrawPolkaDotPattern);
|
||||
|
||||
// set our fill as our pattern, color doesn't matter because the pattern handles it
|
||||
context.SetFillPattern (pattern, new float[] { 1 });
|
||||
|
||||
// fill the entire view with that pattern
|
||||
context.FillRect (imageView.Frame);
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
// This is our pattern callback. it's called by coregraphics to create
|
||||
// the pattern base.
|
||||
protected void DrawPolkaDotPattern (CGContext context)
|
||||
{
|
||||
context.SetRGBFillColor (.3f, .3f, .3f, 1);
|
||||
context.FillEllipseInRect (new RectangleF (4, 4, 8, 8));
|
||||
}
|
||||
|
||||
// This is a slightly more complicated draw pattern, but using it is just
|
||||
// as easy as the previous one. To use this one, simply change "DrawPolkaDotPattern"
|
||||
// in line 54 above to "DrawStarPattern"
|
||||
protected void DrawStarPattern (CGContext context)
|
||||
{
|
||||
// declare vars
|
||||
float starDiameter = 16;
|
||||
// 144º
|
||||
float theta = 2 * (float)Math.PI * (2f / 5f);
|
||||
float radius = starDiameter / 2;
|
||||
|
||||
// move up and over
|
||||
context.TranslateCTM (starDiameter / 2, starDiameter / 2);
|
||||
|
||||
context.MoveTo (0, radius);
|
||||
for (int i = 1; i < 5; i++) {
|
||||
context.AddLineToPoint (radius * (float)Math.Sin (i * theta), radius * (float)Math.Cos (i * theta));
|
||||
}
|
||||
// fill our star as dark gray
|
||||
context.SetRGBFillColor (.3f, .3f, .3f, 1);
|
||||
context.ClosePath ();
|
||||
context.FillPath ();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,140 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.CoordinatesOffScreen
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (View.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero
|
||||
, (int)bitmapSize.Width, (int)bitmapSize.Height, 8
|
||||
, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB ()
|
||||
, CGImageAlphaInfo.PremultipliedFirst))
|
||||
{
|
||||
// declare vars
|
||||
int remainder;
|
||||
int textHeight = 20;
|
||||
|
||||
#region -= vertical ticks =-
|
||||
|
||||
// create our vertical tick lines
|
||||
using (CGLayer verticalTickLayer = CGLayer.Create (context, new SizeF (20, 3))) {
|
||||
|
||||
// draw a single tick
|
||||
verticalTickLayer.Context.FillRect (new RectangleF (0, 1, 20, 2));
|
||||
|
||||
// draw a vertical tick every 20 pixels
|
||||
float yPos = 20;
|
||||
int numberOfVerticalTicks = ((context.Height / 20) - 1);
|
||||
for (int i = 0; i < numberOfVerticalTicks; i++) {
|
||||
// draw the layer
|
||||
context.DrawLayer (verticalTickLayer, new PointF (0, yPos));
|
||||
|
||||
// starting at 40, draw the coordinate text nearly to the top
|
||||
if (yPos > 40 && i < (numberOfVerticalTicks - 2)) {
|
||||
// draw it every 80 points
|
||||
Math.DivRem ( (int)yPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
ShowTextAtPoint (context, 30, (yPos - (textHeight / 2)), yPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
yPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= horizontal ticks =-
|
||||
|
||||
// create our horizontal tick lines
|
||||
using (CGLayer horizontalTickLayer = CGLayer.Create (context, new SizeF (3, 20))) {
|
||||
horizontalTickLayer.Context.FillRect (new RectangleF (1, 0, 2, 20));
|
||||
|
||||
// draw a horizontal tick every 20 pixels
|
||||
float xPos = 20;
|
||||
int numberOfHorizontalTicks = ((context.Width / 20) - 1);
|
||||
for (int i = 0; i < numberOfHorizontalTicks; i++) {
|
||||
|
||||
context.DrawLayer (horizontalTickLayer, new PointF (xPos, 0));
|
||||
|
||||
// starting at 100, draw the coordinate text nearly to the top
|
||||
if (xPos > 100 && i < (numberOfHorizontalTicks - 1)) {
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)xPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
ShowCenteredTextAtPoint (context, xPos, 30, xPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
xPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// draw our "origin" text
|
||||
ShowTextAtPoint (context, 20, (20 + (textHeight / 2)), "Origin (0,0)", textHeight);
|
||||
|
||||
#region -= points =-
|
||||
|
||||
// (250,700)
|
||||
context.FillEllipseInRect (new RectangleF (250, 700, 6, 6));
|
||||
ShowCenteredTextAtPoint (context, 250, 715, "(250,700)", textHeight);
|
||||
|
||||
// (500,300)
|
||||
context.FillEllipseInRect (new RectangleF (500, 300, 6, 6));
|
||||
ShowCenteredTextAtPoint (context, 500, 315, "(500,300)", textHeight);
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
protected void ShowTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
private void ShowCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.CoordinatesOnScreen
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
View = new View ();
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.CoordinatesOnScreen
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
// get a reference to the context
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
|
||||
// declare vars
|
||||
int remainder;
|
||||
int textHeight = 20;
|
||||
|
||||
// invert the 'y' coordinates on the text
|
||||
context.TextMatrix = CGAffineTransform.MakeScale (1, -1);
|
||||
|
||||
#region -= vertical ticks =-
|
||||
|
||||
// create our vertical tick lines
|
||||
using (CGLayer verticalTickLayer = CGLayer.Create (context, new SizeF (20, 3))) {
|
||||
// draw a single tick
|
||||
verticalTickLayer.Context.FillRect (new RectangleF (0, 1, 20, 2));
|
||||
|
||||
// draw a vertical tick every 20 pixels
|
||||
float yPos = 20;
|
||||
int numberOfVerticalTicks = (((int)Frame.Height / 20) - 1);
|
||||
for (int i = 0; i < numberOfVerticalTicks; i++) {
|
||||
|
||||
// draw the layer
|
||||
context.DrawLayer (verticalTickLayer, new PointF (0, yPos));
|
||||
|
||||
// starting at 40, draw the coordinate text nearly to the top
|
||||
if (yPos > 40 && i < (numberOfVerticalTicks - 2)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)yPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
ShowTextAtPoint (context, 30, (yPos - (textHeight / 2)), yPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
yPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= horizontal ticks =-
|
||||
|
||||
// create our horizontal tick lines
|
||||
using (CGLayer horizontalTickLayer = CGLayer.Create (context, new SizeF (3, 20))) {
|
||||
horizontalTickLayer.Context.FillRect (new RectangleF (1, 0, 2, 20));
|
||||
|
||||
// draw a horizontal tick every 20 pixels
|
||||
float xPos = 20;
|
||||
int numberOfHorizontalTicks = (((int)Frame.Width / 20) - 1);
|
||||
for (int i = 0; i < numberOfHorizontalTicks; i++) {
|
||||
context.DrawLayer (horizontalTickLayer, new PointF (xPos, 0));
|
||||
|
||||
// starting at 100, draw the coordinate text nearly to the top
|
||||
if (xPos > 100 && i < (numberOfHorizontalTicks - 1)) {
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)xPos, (int)80, out remainder);
|
||||
if (remainder == 0) {
|
||||
ShowCenteredTextAtPoint (context, xPos, 40, xPos.ToString (), textHeight);
|
||||
}
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
xPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// draw our "origin" text
|
||||
ShowTextAtPoint (context, 20, (30 + (textHeight / 2)), "Origin (0,0)", textHeight);
|
||||
|
||||
#region -= points =-
|
||||
|
||||
// (250,700)
|
||||
context.FillEllipseInRect (new RectangleF (250, 700, 6, 6));
|
||||
ShowCenteredTextAtPoint (context, 250, 695, "(250,700)", textHeight);
|
||||
|
||||
// (500,300)
|
||||
context.FillEllipseInRect (new RectangleF (500, 300, 6, 6));
|
||||
ShowCenteredTextAtPoint (context, 500, 295, "(500,300)", textHeight);
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
protected void ShowTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
private void ShowCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.DrawOffScreenUsingCGBitmapContext
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// no data
|
||||
IntPtr data = IntPtr.Zero;
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (200, 300);
|
||||
//View.Frame.Size;
|
||||
// 32bit RGB (8bits * 4components (aRGB) = 32bit)
|
||||
int bitsPerComponent = 8;
|
||||
// 4bytes for each pixel (32 bits = 4bytes)
|
||||
int bytesPerRow = (int)(4 * bitmapSize.Width);
|
||||
// no special color space
|
||||
CGColorSpace colorSpace = CGColorSpace.CreateDeviceRGB ();
|
||||
// aRGB
|
||||
CGImageAlphaInfo alphaType = CGImageAlphaInfo.PremultipliedFirst;
|
||||
|
||||
|
||||
using (CGBitmapContext context = new CGBitmapContext (data
|
||||
, (int)bitmapSize.Width, (int)bitmapSize.Height, bitsPerComponent
|
||||
, bytesPerRow, colorSpace, alphaType)) {
|
||||
|
||||
// draw whatever here.
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.DrawRectVsPath
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
Console.WriteLine ("LoadView() Called");
|
||||
base.LoadView ();
|
||||
|
||||
View = new View ();
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.DrawRectVsPath
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
|
||||
// fill the background with white
|
||||
// set fill color
|
||||
UIColor.White.SetFill ();
|
||||
//context.SetRGBFillColor (1, 1, 1, 1f);
|
||||
// paint
|
||||
context.FillRect (rect);
|
||||
|
||||
// draw a rectangle using stroke rect
|
||||
UIColor.Blue.SetStroke ();
|
||||
context.StrokeRect (new RectangleF (10, 10, 200, 100));
|
||||
|
||||
// draw a rectangle using a path
|
||||
context.BeginPath ();
|
||||
context.MoveTo (220, 10);
|
||||
context.AddLineToPoint (420, 10);
|
||||
context.AddLineToPoint (420, 110);
|
||||
context.AddLineToPoint (220, 110);
|
||||
context.ClosePath ();
|
||||
UIColor.DarkGray.SetFill ();
|
||||
context.DrawPath (CGPathDrawingMode.FillStroke);
|
||||
|
||||
// draw a rectangle using a path
|
||||
CGPath rectPath = new CGPath ();
|
||||
rectPath.AddRect (new RectangleF (new PointF (430, 10), new SizeF (200, 100)));
|
||||
context.AddPath (rectPath);
|
||||
context.DrawPath (CGPathDrawingMode.Stroke);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,278 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.FlagOffScreen
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (imageView.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero
|
||||
, (int)bitmapSize.Width, (int)bitmapSize.Height, 8
|
||||
, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB ()
|
||||
, CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
// draw our coordinates for reference
|
||||
DrawCoordinateSpace (context);
|
||||
|
||||
// draw our flag
|
||||
DrawFlag (context);
|
||||
|
||||
// add a label
|
||||
DrawCenteredTextAtPoint (context, 384, 700, "Stars and Stripes", 60);
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
protected void DrawFlag (CGContext context)
|
||||
{
|
||||
// declare vars
|
||||
int i, j;
|
||||
|
||||
// general sizes
|
||||
float flagWidth = imageView.Frame.Width * .8f;
|
||||
float flagHeight = (float)(flagWidth / 1.9);
|
||||
PointF flagOrigin = new PointF (imageView.Frame.Width * .1f, imageView.Frame.Height / 3);
|
||||
|
||||
// stripe
|
||||
float stripeHeight = flagHeight / 13;
|
||||
float stripeSpacing = stripeHeight * 2;
|
||||
RectangleF stripeRect = new RectangleF (0, 0, flagWidth, stripeHeight);
|
||||
|
||||
// star field
|
||||
float starFieldHeight = 7 * stripeHeight;
|
||||
float starFieldWidth = flagWidth * (2f / 5f);
|
||||
RectangleF starField = new RectangleF (flagOrigin.X, flagOrigin.Y + (6 * stripeHeight), starFieldWidth, starFieldHeight);
|
||||
|
||||
// stars
|
||||
float starDiameter = flagHeight * 0.0616f;
|
||||
float starHorizontalCenterSpacing = (starFieldWidth / 6);
|
||||
float starHorizontalPadding = (starHorizontalCenterSpacing / 4);
|
||||
float starVerticalCenterSpacing = (starFieldHeight / 5);
|
||||
float starVerticalPadding = (starVerticalCenterSpacing / 4);
|
||||
PointF firstStarOrigin = new PointF (flagOrigin.X + starHorizontalPadding, flagOrigin.Y + flagHeight - starVerticalPadding - (starVerticalCenterSpacing / 2));
|
||||
PointF secondRowFirstStarOrigin = new PointF (firstStarOrigin.X + (starHorizontalCenterSpacing / 2), firstStarOrigin.Y - (starVerticalCenterSpacing / 2));
|
||||
|
||||
// white background + shadow
|
||||
context.SaveState ();
|
||||
context.SetShadow (new SizeF (15, -15), 7);
|
||||
context.SetRGBFillColor (1, 1, 1, 1);
|
||||
context.FillRect (new RectangleF (flagOrigin.X, flagOrigin.Y, flagWidth, flagHeight));
|
||||
context.RestoreState ();
|
||||
|
||||
// create a stripe layer
|
||||
using (CGLayer stripeLayer = CGLayer.Create (context, stripeRect.Size)) {
|
||||
|
||||
// set red as the fill color
|
||||
// this works
|
||||
stripeLayer.Context.SetRGBFillColor (1f, 0f, 0f, 1f);
|
||||
// but this doesn't ????
|
||||
//stripeLayer.Context.SetFillColor (new float[] { 1f, 0f, 0f, 1f });
|
||||
// fill the stripe
|
||||
stripeLayer.Context.FillRect (stripeRect);
|
||||
|
||||
// loop through the stripes and draw the layer
|
||||
context.SaveState ();
|
||||
for (i = 0; i < 7; i++) {
|
||||
Console.WriteLine ("drawing stripe layer");
|
||||
// draw the layer
|
||||
context.DrawLayer (stripeLayer, flagOrigin);
|
||||
// move the origin
|
||||
context.TranslateCTM (0, stripeSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
}
|
||||
|
||||
// draw the star field
|
||||
//BUGBUG: apple bug - this only works on on-screen CGContext and CGLayer
|
||||
//context.SetFillColor (new float[] { 0f, 0f, 0.329f, 1.0f });
|
||||
context.SetRGBFillColor (0f, 0f, 0.329f, 1.0f);
|
||||
context.FillRect (starField);
|
||||
|
||||
// create the star layer
|
||||
using (CGLayer starLayer = CGLayer.Create (context, starField.Size)) {
|
||||
|
||||
// draw the stars
|
||||
DrawStar (starLayer.Context, starDiameter);
|
||||
|
||||
// 6-star rows
|
||||
// save state so that as we translate (move the origin around,
|
||||
// it goes back to normal when we restore)
|
||||
context.SaveState ();
|
||||
context.TranslateCTM (firstStarOrigin.X, firstStarOrigin.Y);
|
||||
// loop through each row
|
||||
for (j = 0; j < 5; j++) {
|
||||
|
||||
// each star in the row
|
||||
for (i = 0; i < 6; i++) {
|
||||
|
||||
// draw the star, then move the origin to the right
|
||||
context.DrawLayer (starLayer, new PointF (0f, 0f));
|
||||
context.TranslateCTM (starHorizontalCenterSpacing, 0f);
|
||||
}
|
||||
// move the row down, and then back left
|
||||
context.TranslateCTM ( (-i * starHorizontalCenterSpacing), -starVerticalCenterSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
|
||||
// 5-star rows
|
||||
context.SaveState ();
|
||||
context.TranslateCTM (secondRowFirstStarOrigin.X, secondRowFirstStarOrigin.Y);
|
||||
// loop through each row
|
||||
for (j = 0; j < 4; j++) {
|
||||
|
||||
// each star in the row
|
||||
for (i = 0; i < 5; i++) {
|
||||
|
||||
context.DrawLayer (starLayer, new PointF (0f, 0f));
|
||||
context.TranslateCTM (starHorizontalCenterSpacing, 0);
|
||||
}
|
||||
context.TranslateCTM ( (-i * starHorizontalCenterSpacing), -starVerticalCenterSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
}
|
||||
}
|
||||
|
||||
// Draws the specified text starting at x,y of the specified height to the context.
|
||||
protected void DrawTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
// configure font
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
// set it to fill in our text, don't just outline
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
// call showTextAtPoint
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
protected void DrawCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
|
||||
// Draws a star at the bottom left of the context of the specified diameter
|
||||
protected void DrawStar (CGContext context, float starDiameter)
|
||||
{
|
||||
// declare vars
|
||||
// 144º
|
||||
float theta = 2 * (float)Math.PI * (2f / 5f);
|
||||
float radius = starDiameter / 2;
|
||||
|
||||
// move up and over
|
||||
context.TranslateCTM (starDiameter / 2, starDiameter / 2);
|
||||
|
||||
context.MoveTo (0, radius);
|
||||
for (int i = 1; i < 5; i++) {
|
||||
context.AddLineToPoint (radius * (float)Math.Sin (i * theta), radius * (float)Math.Cos (i * theta));
|
||||
}
|
||||
context.SetRGBFillColor (1, 1, 1, 1);
|
||||
context.ClosePath ();
|
||||
context.FillPath ();
|
||||
}
|
||||
|
||||
|
||||
// Draws our coordinate grid
|
||||
protected void DrawCoordinateSpace (CGBitmapContext context)
|
||||
{
|
||||
// declare vars
|
||||
int remainder;
|
||||
int textHeight = 20;
|
||||
|
||||
#region -= vertical ticks =-
|
||||
|
||||
// create our vertical tick lines
|
||||
using (CGLayer verticalTickLayer = CGLayer.Create (context, new SizeF (20, 3)))
|
||||
{
|
||||
// draw a single tick
|
||||
verticalTickLayer.Context.FillRect (new RectangleF (0, 1, 20, 2));
|
||||
|
||||
// draw a vertical tick every 20 pixels
|
||||
float yPos = 20;
|
||||
int numberOfVerticalTicks = ((context.Height / 20) - 1);
|
||||
for (int i = 0; i < numberOfVerticalTicks; i++) {
|
||||
|
||||
// draw the layer
|
||||
context.DrawLayer (verticalTickLayer, new PointF (0, yPos));
|
||||
|
||||
// starting at 40, draw the coordinate text nearly to the top
|
||||
if (yPos > 40 && i < (numberOfVerticalTicks - 2)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)yPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawTextAtPoint (context, 30, (yPos - (textHeight / 2)), yPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
yPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= horizontal ticks =-
|
||||
|
||||
// create our horizontal tick lines
|
||||
using (CGLayer horizontalTickLayer = CGLayer.Create (context, new SizeF (3, 20)))
|
||||
{
|
||||
horizontalTickLayer.Context.FillRect (new RectangleF (1, 0, 2, 20));
|
||||
|
||||
// draw a horizontal tick every 20 pixels
|
||||
float xPos = 20;
|
||||
int numberOfHorizontalTicks = ((context.Width / 20) - 1);
|
||||
for (int i = 0; i < numberOfHorizontalTicks; i++) {
|
||||
|
||||
context.DrawLayer (horizontalTickLayer, new PointF (xPos, 0));
|
||||
|
||||
// starting at 100, draw the coordinate text nearly to the top
|
||||
if (xPos > 100 && i < (numberOfHorizontalTicks - 1)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)xPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawCenteredTextAtPoint (context, xPos, 30, xPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
xPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// draw our "origin" text
|
||||
DrawTextAtPoint (context, 20, (20 + (textHeight / 2)), "Origin (0,0)", textHeight);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.FlagOnScreen
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
View = new View ();
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,272 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.FlagOnScreen
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
// get a reference to the context
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
|
||||
// convert to View space
|
||||
CGAffineTransform affineTransform = CGAffineTransform.MakeIdentity ();
|
||||
// invert the y axis
|
||||
affineTransform.Scale (1, -1);
|
||||
// move the y axis up
|
||||
affineTransform.Translate (0, Frame.Height);
|
||||
context.ConcatCTM (affineTransform);
|
||||
|
||||
// draw our coordinates for reference
|
||||
DrawCoordinateSpace (context);
|
||||
|
||||
// draw our flag
|
||||
DrawFlag (context);
|
||||
|
||||
// add a label
|
||||
DrawCenteredTextAtPoint (context, 384, 700, "Stars and Stripes", 60);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void DrawFlag (CGContext context)
|
||||
{
|
||||
// declare vars
|
||||
int i, j;
|
||||
|
||||
// general sizes
|
||||
float flagWidth = Frame.Width * .8f;
|
||||
float flagHeight = (float)(flagWidth / 1.9);
|
||||
PointF flagOrigin = new PointF (Frame.Width * .1f, Frame.Height / 3);
|
||||
|
||||
// stripe
|
||||
float stripeHeight = flagHeight / 13;
|
||||
float stripeSpacing = stripeHeight * 2;
|
||||
RectangleF stripeRect = new RectangleF (0, 0, flagWidth, stripeHeight);
|
||||
|
||||
// star field
|
||||
float starFieldHeight = 7 * stripeHeight;
|
||||
float starFieldWidth = flagWidth * (2f / 5f);
|
||||
RectangleF starField = new RectangleF (flagOrigin.X, flagOrigin.Y + (6 * stripeHeight), starFieldWidth, starFieldHeight);
|
||||
|
||||
// stars
|
||||
float starDiameter = flagHeight * 0.0616f;
|
||||
float starHorizontalCenterSpacing = (starFieldWidth / 6);
|
||||
float starHorizontalPadding = (starHorizontalCenterSpacing / 4);
|
||||
float starVerticalCenterSpacing = (starFieldHeight / 5);
|
||||
float starVerticalPadding = (starVerticalCenterSpacing / 4);
|
||||
PointF firstStarOrigin = new PointF (flagOrigin.X + starHorizontalPadding, flagOrigin.Y + flagHeight - starVerticalPadding - (starVerticalCenterSpacing / 2));
|
||||
PointF secondRowFirstStarOrigin = new PointF (firstStarOrigin.X + (starHorizontalCenterSpacing / 2), firstStarOrigin.Y - (starVerticalCenterSpacing / 2));
|
||||
|
||||
// white background + shadow
|
||||
context.SaveState ();
|
||||
// note: when drawing on-screen,the coord space for shadows doesn't get modified
|
||||
context.SetShadow (new SizeF (15, 15), 7);
|
||||
context.SetRGBFillColor (1, 1, 1, 1);
|
||||
context.FillRect (new RectangleF (flagOrigin.X, flagOrigin.Y, flagWidth, flagHeight));
|
||||
context.RestoreState ();
|
||||
|
||||
// create a stripe layer
|
||||
using (CGLayer stripeLayer = CGLayer.Create (context, stripeRect.Size)) {
|
||||
|
||||
// set red as the fill color
|
||||
// this works
|
||||
stripeLayer.Context.SetRGBFillColor (1f, 0f, 0f, 1f);
|
||||
// but this doesn't ????
|
||||
//stripeLayer.Context.SetFillColor (new float[] { 1f, 0f, 0f, 1f });
|
||||
// fill the stripe
|
||||
stripeLayer.Context.FillRect (stripeRect);
|
||||
|
||||
// loop through the stripes and draw the layer
|
||||
context.SaveState ();
|
||||
for (i = 0; i < 7; i++) {
|
||||
Console.WriteLine ("drawing stripe layer");
|
||||
// draw the layer
|
||||
context.DrawLayer (stripeLayer, flagOrigin);
|
||||
// move the origin
|
||||
context.TranslateCTM (0, stripeSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
}
|
||||
|
||||
// draw the star field
|
||||
//BUGBUG: apple bug - this only works on on-screen CGContext and CGLayer
|
||||
//context.SetFillColor (new float[] { 0f, 0f, 0.329f, 1.0f });
|
||||
context.SetRGBFillColor (0f, 0f, 0.329f, 1.0f);
|
||||
context.FillRect (starField);
|
||||
|
||||
// create the star layer
|
||||
using (CGLayer starLayer = CGLayer.Create (context, starField.Size)) {
|
||||
|
||||
// draw the stars
|
||||
DrawStar (starLayer.Context, starDiameter);
|
||||
|
||||
// 6-star rows
|
||||
// save state so that as we translate (move the origin around,
|
||||
// it goes back to normal when we restore)
|
||||
context.SaveState ();
|
||||
context.TranslateCTM (firstStarOrigin.X, firstStarOrigin.Y);
|
||||
// loop through each row
|
||||
for (j = 0; j < 5; j++) {
|
||||
|
||||
// each star in the row
|
||||
for (i = 0; i < 6; i++) {
|
||||
|
||||
// draw the star, then move the origin to the right
|
||||
context.DrawLayer (starLayer, new PointF (0f, 0f));
|
||||
context.TranslateCTM (starHorizontalCenterSpacing, 0f);
|
||||
}
|
||||
// move the row down, and then back left
|
||||
context.TranslateCTM ((-i * starHorizontalCenterSpacing), -starVerticalCenterSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
|
||||
// 5-star rows
|
||||
context.SaveState ();
|
||||
context.TranslateCTM (secondRowFirstStarOrigin.X, secondRowFirstStarOrigin.Y);
|
||||
// loop through each row
|
||||
for (j = 0; j < 4; j++) {
|
||||
|
||||
// each star in the row
|
||||
for (i = 0; i < 5; i++) {
|
||||
|
||||
context.DrawLayer (starLayer, new PointF (0f, 0f));
|
||||
context.TranslateCTM (starHorizontalCenterSpacing, 0);
|
||||
}
|
||||
context.TranslateCTM ((-i * starHorizontalCenterSpacing), -starVerticalCenterSpacing);
|
||||
}
|
||||
context.RestoreState ();
|
||||
}
|
||||
}
|
||||
|
||||
// Draws the specified text starting at x,y of the specified height to the context.
|
||||
protected void DrawTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
// configure font
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
// set it to fill in our text, don't just outline
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
// call showTextAtPoint
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
protected void DrawCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
|
||||
// Draws a star at the bottom left of the context of the specified diameter
|
||||
protected void DrawStar (CGContext context, float starDiameter)
|
||||
{
|
||||
// declare vars
|
||||
// 144º
|
||||
float theta = 2 * (float)Math.PI * (2f / 5f);
|
||||
float radius = starDiameter / 2;
|
||||
|
||||
// move up and over
|
||||
context.TranslateCTM (starDiameter / 2, starDiameter / 2);
|
||||
|
||||
context.MoveTo (0, radius);
|
||||
for (int i = 1; i < 5; i++) {
|
||||
context.AddLineToPoint (radius * (float)Math.Sin (i * theta), radius * (float)Math.Cos (i * theta));
|
||||
}
|
||||
context.SetRGBFillColor (1, 1, 1, 1);
|
||||
context.ClosePath ();
|
||||
context.FillPath ();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Draws our coordinate grid
|
||||
/// </summary>
|
||||
protected void DrawCoordinateSpace (CGContext context)
|
||||
{
|
||||
// declare vars
|
||||
int remainder;
|
||||
int textHeight = 20;
|
||||
|
||||
#region -= vertical ticks =-
|
||||
|
||||
// create our vertical tick lines
|
||||
using (CGLayer verticalTickLayer = CGLayer.Create (context, new SizeF (20, 3))) {
|
||||
|
||||
// draw a single tick
|
||||
verticalTickLayer.Context.FillRect (new RectangleF (0, 1, 20, 2));
|
||||
|
||||
// draw a vertical tick every 20 pixels
|
||||
float yPos = 20;
|
||||
int numberOfVerticalTicks = ((int)(Frame.Height / 20) - 1);
|
||||
for (int i = 0; i < numberOfVerticalTicks; i++) {
|
||||
|
||||
// draw the layer
|
||||
context.DrawLayer (verticalTickLayer, new PointF (0, yPos));
|
||||
|
||||
// starting at 40, draw the coordinate text nearly to the top
|
||||
if (yPos > 40 && i < (numberOfVerticalTicks - 2)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)yPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawTextAtPoint (context, 30, (yPos - (textHeight / 2)), yPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
yPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= horizontal ticks =-
|
||||
|
||||
// create our horizontal tick lines
|
||||
using (CGLayer horizontalTickLayer = CGLayer.Create (context, new SizeF (3, 20))) {
|
||||
|
||||
horizontalTickLayer.Context.FillRect (new RectangleF (1, 0, 2, 20));
|
||||
|
||||
// draw a horizontal tick every 20 pixels
|
||||
float xPos = 20;
|
||||
int numberOfHorizontalTicks = ((int)(Frame.Width / 20) - 1);
|
||||
for (int i = 0; i < numberOfHorizontalTicks; i++) {
|
||||
|
||||
context.DrawLayer (horizontalTickLayer, new PointF (xPos, 0));
|
||||
|
||||
// starting at 100, draw the coordinate text nearly to the top
|
||||
if (xPos > 100 && i < (numberOfHorizontalTicks - 1)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)xPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawCenteredTextAtPoint (context, xPos, 30, xPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
xPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// draw our "origin" text
|
||||
DrawTextAtPoint (context, 20, (20 + (textHeight / 2)), "Origin (0,0)", textHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.HitTesting
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
Console.WriteLine ("LoadView() Called");
|
||||
base.LoadView ();
|
||||
|
||||
View = new View ();
|
||||
View.BackgroundColor = UIColor.White;
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
using MonoTouch.Foundation;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.HitTesting
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
CGPath myRectangleButtonPath;
|
||||
bool touchStartedInPath;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
// draw a rectangle using a path
|
||||
myRectangleButtonPath = new CGPath ();
|
||||
myRectangleButtonPath.AddRect (new RectangleF (new PointF (100, 10), new SizeF (200, 400)));
|
||||
context.AddPath (myRectangleButtonPath);
|
||||
context.DrawPath (CGPathDrawingMode.Stroke);
|
||||
}
|
||||
}
|
||||
|
||||
// Raised when a user begins a touch on the screen. We check to see if the touch
|
||||
// was within our path. If it was, we set the _touchStartedInPath = true so that
|
||||
// we can track to see if when the user raised their finger, it was also in the path
|
||||
public override void TouchesBegan (NSSet touches, UIEvent evt)
|
||||
{
|
||||
base.TouchesBegan (touches, evt);
|
||||
// get a reference to the touch
|
||||
UITouch touch = touches.AnyObject as UITouch;
|
||||
// make sure there was one
|
||||
if (touch != null) {
|
||||
// check to see if the location of the touch was within our path
|
||||
if (myRectangleButtonPath.ContainsPoint (touch.LocationInView (this), true))
|
||||
touchStartedInPath = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Raised when a user raises their finger from the screen. Since we need to check to
|
||||
// see if the user touch started and ended within the path, we have to track to see
|
||||
// when the finger is raised, if it did.
|
||||
public override void TouchesEnded (NSSet touches, UIEvent evt)
|
||||
{
|
||||
base.TouchesEnded (touches, evt);
|
||||
|
||||
// get a reference to any of the touches
|
||||
UITouch touch = touches.AnyObject as UITouch;
|
||||
|
||||
// if there is a touch
|
||||
if (touch != null) {
|
||||
|
||||
// the point of touch
|
||||
PointF pt = touch.LocationInView (this);
|
||||
|
||||
// if the touch ended in the path AND it started in the path
|
||||
if (myRectangleButtonPath.ContainsPoint (pt, true) && touchStartedInPath) {
|
||||
Console.WriteLine ("touched at location: " + pt.ToString ());
|
||||
UIAlertView alert = new UIAlertView ("Hit!", "You sunk my battleship!", null, "OK", null);
|
||||
alert.Show ();
|
||||
}
|
||||
}
|
||||
|
||||
// reset
|
||||
touchStartedInPath = false;
|
||||
}
|
||||
|
||||
// if for some reason the touch was cancelled, we clear our _touchStartedInPath flag
|
||||
public override void TouchesCancelled (NSSet touches, UIEvent evt)
|
||||
{
|
||||
base.TouchesCancelled (touches, evt);
|
||||
touchStartedInPath = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,835 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">768</int>
|
||||
<string key="IBDocument.SystemVersion">10D573</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">786</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">112</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<integer value="1"/>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="711762367">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIButton" id="425473159">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 20}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont" id="1033838756">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Draw Rectangle vs. Path</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="100543285">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="183808867">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="591152255">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 65}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Draw using CGBitmapContext</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="826340580">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 110}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Using Layers</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="69823712">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 245}, {292, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">On-screen Uncorrected Text Rotation</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="1057618426">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 155}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">On-screen Coordinates</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="384965679">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 200}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Off-screen Coordinates</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="741662393">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 290}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Off-screen Flag</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="368059820">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 335}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">On-screen Flag</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="110552306">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 380}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Image</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="549708469">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 425}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Color Pattern</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="358157058">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 470}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Stencil Pattern</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="1020234674">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 515}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Shadows</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="274383091">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 560}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Hit Testing</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="166304750">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 605}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Touch Drawing</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="545133842">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 650}, {239, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1033838756"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Transformations</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="100543285"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="183808867"/>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{768, 1004}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
||||
<int key="IBUIStatusBarStyle">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnDrawRectVsPath</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="425473159"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnDrawUsingCGBitmapContext</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="591152255"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnDrawUsingLayers</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="826340580"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnOffScreenCoords</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="384965679"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnOnScreenCoords</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1057618426"/>
|
||||
</object>
|
||||
<int key="connectionID">17</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnOnScreenUncorrectedText</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="69823712"/>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnOffScreenFlag</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="741662393"/>
|
||||
</object>
|
||||
<int key="connectionID">22</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="110552306"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnPatterns</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="549708469"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnStencilPattern</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="358157058"/>
|
||||
</object>
|
||||
<int key="connectionID">28</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnShadows</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1020234674"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnHitTesting</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="274383091"/>
|
||||
</object>
|
||||
<int key="connectionID">32</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnTouchDrawing</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="166304750"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnOnScreenFlag</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="368059820"/>
|
||||
</object>
|
||||
<int key="connectionID">38</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">btnTransformations</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="545133842"/>
|
||||
</object>
|
||||
<int key="connectionID">40</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="425473159"/>
|
||||
<reference ref="591152255"/>
|
||||
<reference ref="826340580"/>
|
||||
<reference ref="1057618426"/>
|
||||
<reference ref="384965679"/>
|
||||
<reference ref="69823712"/>
|
||||
<reference ref="741662393"/>
|
||||
<reference ref="368059820"/>
|
||||
<reference ref="110552306"/>
|
||||
<reference ref="549708469"/>
|
||||
<reference ref="358157058"/>
|
||||
<reference ref="1020234674"/>
|
||||
<reference ref="274383091"/>
|
||||
<reference ref="166304750"/>
|
||||
<reference ref="545133842"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="711762367"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="425473159"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="591152255"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="826340580"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">14</int>
|
||||
<reference key="object" ref="1057618426"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="384965679"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="69823712"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="741662393"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="110552306"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="549708469"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">27</int>
|
||||
<reference key="object" ref="358157058"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">29</int>
|
||||
<reference key="object" ref="1020234674"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">31</int>
|
||||
<reference key="object" ref="274383091"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">33</int>
|
||||
<reference key="object" ref="166304750"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">37</int>
|
||||
<reference key="object" ref="368059820"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="545133842"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBLastUsedUIStatusBarStylesToTargetRuntimesMap</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>11.IBPluginDependency</string>
|
||||
<string>14.IBPluginDependency</string>
|
||||
<string>15.IBPluginDependency</string>
|
||||
<string>18.IBPluginDependency</string>
|
||||
<string>21.IBPluginDependency</string>
|
||||
<string>23.IBPluginDependency</string>
|
||||
<string>25.IBPluginDependency</string>
|
||||
<string>27.IBPluginDependency</string>
|
||||
<string>29.IBPluginDependency</string>
|
||||
<string>31.IBPluginDependency</string>
|
||||
<string>33.IBPluginDependency</string>
|
||||
<string>37.IBPluginDependency</string>
|
||||
<string>39.IBPluginDependency</string>
|
||||
<string>8.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>HomeScreen</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{312, 0}, {783, 856}}</string>
|
||||
<object class="NSMutableDictionary">
|
||||
<string key="NS.key.0">IBCocoaTouchFramework</string>
|
||||
<integer value="0" key="NS.object.0"/>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">40</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">HomeScreen</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>btnDrawRectVsPath</string>
|
||||
<string>btnDrawUsingCGBitmapContext</string>
|
||||
<string>btnDrawUsingLayers</string>
|
||||
<string>btnHitTesting</string>
|
||||
<string>btnImage</string>
|
||||
<string>btnOffScreenCoords</string>
|
||||
<string>btnOffScreenFlag</string>
|
||||
<string>btnOnScreenCoords</string>
|
||||
<string>btnOnScreenFlag</string>
|
||||
<string>btnOnScreenUncorrectedText</string>
|
||||
<string>btnPatterns</string>
|
||||
<string>btnShadows</string>
|
||||
<string>btnStencilPattern</string>
|
||||
<string>btnTouchDrawing</string>
|
||||
<string>btnTransformations</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>btnDrawRectVsPath</string>
|
||||
<string>btnDrawUsingCGBitmapContext</string>
|
||||
<string>btnDrawUsingLayers</string>
|
||||
<string>btnHitTesting</string>
|
||||
<string>btnImage</string>
|
||||
<string>btnOffScreenCoords</string>
|
||||
<string>btnOffScreenFlag</string>
|
||||
<string>btnOnScreenCoords</string>
|
||||
<string>btnOnScreenFlag</string>
|
||||
<string>btnOnScreenUncorrectedText</string>
|
||||
<string>btnPatterns</string>
|
||||
<string>btnShadows</string>
|
||||
<string>btnStencilPattern</string>
|
||||
<string>btnTouchDrawing</string>
|
||||
<string>btnTransformations</string>
|
||||
<string>view</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnDrawRectVsPath</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnDrawUsingCGBitmapContext</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnDrawUsingLayers</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnHitTesting</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnImage</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnOffScreenCoords</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnOffScreenFlag</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnOnScreenCoords</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnOnScreenFlag</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnOnScreenUncorrectedText</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnPatterns</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnShadows</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnStencilPattern</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnTouchDrawing</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">btnTransformations</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">view</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="768" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<nil key="IBDocument.LastKnownRelativeProjectPath"/>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">112</string>
|
||||
</data>
|
||||
</archive>
|
|
@ -0,0 +1,81 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MonoTouch.Foundation;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Home
|
||||
{
|
||||
public partial class HomeScreen : UIViewController
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
// The IntPtr and initWithCoder constructors are required for controllers that need
|
||||
// to be able to be created from a xib rather than from managed code
|
||||
|
||||
public HomeScreen (IntPtr handle) : base(handle) { }
|
||||
|
||||
[Export("initWithCoder:")]
|
||||
public HomeScreen (NSCoder coder) : base(coder) { }
|
||||
|
||||
public HomeScreen () : base("HomeScreen", null) { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
btnDrawRectVsPath.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new DrawRectVsPath.Controller (), true);
|
||||
};
|
||||
btnDrawUsingCGBitmapContext.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new DrawOffScreenUsingCGBitmapContext.Controller (), true);
|
||||
};
|
||||
btnDrawUsingLayers.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new Layers.Controller (), true);
|
||||
};
|
||||
btnOnScreenCoords.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new CoordinatesOnScreen.Controller (), true);
|
||||
};
|
||||
btnOffScreenCoords.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new CoordinatesOffScreen.Controller (), true);
|
||||
};
|
||||
btnOnScreenUncorrectedText.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new OnScreenUncorrectedTextRotation.Controller (), true);
|
||||
};
|
||||
btnImage.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new Images.Controller (), true);
|
||||
};
|
||||
btnOffScreenFlag.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new FlagOffScreen.Controller (), true);
|
||||
};
|
||||
btnOnScreenFlag.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new FlagOnScreen.Controller (), true);
|
||||
};
|
||||
btnPatterns.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new ColorPattern.Controller (), true);
|
||||
};
|
||||
btnStencilPattern.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new StencilPattern.Controller (), true);
|
||||
};
|
||||
btnShadows.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new Shadows.Controller (), true);
|
||||
};
|
||||
btnHitTesting.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new HitTesting.Controller (), true);
|
||||
};
|
||||
btnTouchDrawing.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new TouchDrawing.Controller (), true);
|
||||
};
|
||||
btnTransformations.TouchUpInside += delegate {
|
||||
NavigationController.PushViewController (new Transformations.Controller (), true);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,243 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// <autogenerated>
|
||||
// This code was generated by a tool.
|
||||
// Mono Runtime Version: 2.0.50727.1433
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </autogenerated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Home {
|
||||
|
||||
|
||||
// Base type probably should be MonoTouch.UIKit.UIViewController or subclass
|
||||
[MonoTouch.Foundation.Register("HomeScreen")]
|
||||
public partial class HomeScreen {
|
||||
|
||||
private MonoTouch.UIKit.UIView __mt_view;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnDrawRectVsPath;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnDrawUsingCGBitmapContext;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnDrawUsingLayers;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnOffScreenCoords;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnOnScreenCoords;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnOnScreenUncorrectedText;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnOffScreenFlag;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnImage;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnPatterns;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnStencilPattern;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnShadows;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnHitTesting;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnTouchDrawing;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnOnScreenFlag;
|
||||
|
||||
private MonoTouch.UIKit.UIButton __mt_btnTransformations;
|
||||
|
||||
#pragma warning disable 0169
|
||||
[MonoTouch.Foundation.Connect("view")]
|
||||
private MonoTouch.UIKit.UIView view {
|
||||
get {
|
||||
this.__mt_view = ((MonoTouch.UIKit.UIView)(this.GetNativeField("view")));
|
||||
return this.__mt_view;
|
||||
}
|
||||
set {
|
||||
this.__mt_view = value;
|
||||
this.SetNativeField("view", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnDrawRectVsPath")]
|
||||
private MonoTouch.UIKit.UIButton btnDrawRectVsPath {
|
||||
get {
|
||||
this.__mt_btnDrawRectVsPath = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnDrawRectVsPath")));
|
||||
return this.__mt_btnDrawRectVsPath;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnDrawRectVsPath = value;
|
||||
this.SetNativeField("btnDrawRectVsPath", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnDrawUsingCGBitmapContext")]
|
||||
private MonoTouch.UIKit.UIButton btnDrawUsingCGBitmapContext {
|
||||
get {
|
||||
this.__mt_btnDrawUsingCGBitmapContext = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnDrawUsingCGBitmapContext")));
|
||||
return this.__mt_btnDrawUsingCGBitmapContext;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnDrawUsingCGBitmapContext = value;
|
||||
this.SetNativeField("btnDrawUsingCGBitmapContext", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnDrawUsingLayers")]
|
||||
private MonoTouch.UIKit.UIButton btnDrawUsingLayers {
|
||||
get {
|
||||
this.__mt_btnDrawUsingLayers = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnDrawUsingLayers")));
|
||||
return this.__mt_btnDrawUsingLayers;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnDrawUsingLayers = value;
|
||||
this.SetNativeField("btnDrawUsingLayers", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnOffScreenCoords")]
|
||||
private MonoTouch.UIKit.UIButton btnOffScreenCoords {
|
||||
get {
|
||||
this.__mt_btnOffScreenCoords = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnOffScreenCoords")));
|
||||
return this.__mt_btnOffScreenCoords;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnOffScreenCoords = value;
|
||||
this.SetNativeField("btnOffScreenCoords", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnOnScreenCoords")]
|
||||
private MonoTouch.UIKit.UIButton btnOnScreenCoords {
|
||||
get {
|
||||
this.__mt_btnOnScreenCoords = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnOnScreenCoords")));
|
||||
return this.__mt_btnOnScreenCoords;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnOnScreenCoords = value;
|
||||
this.SetNativeField("btnOnScreenCoords", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnOnScreenUncorrectedText")]
|
||||
private MonoTouch.UIKit.UIButton btnOnScreenUncorrectedText {
|
||||
get {
|
||||
this.__mt_btnOnScreenUncorrectedText = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnOnScreenUncorrectedText")));
|
||||
return this.__mt_btnOnScreenUncorrectedText;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnOnScreenUncorrectedText = value;
|
||||
this.SetNativeField("btnOnScreenUncorrectedText", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnOffScreenFlag")]
|
||||
private MonoTouch.UIKit.UIButton btnOffScreenFlag {
|
||||
get {
|
||||
this.__mt_btnOffScreenFlag = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnOffScreenFlag")));
|
||||
return this.__mt_btnOffScreenFlag;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnOffScreenFlag = value;
|
||||
this.SetNativeField("btnOffScreenFlag", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnImage")]
|
||||
private MonoTouch.UIKit.UIButton btnImage {
|
||||
get {
|
||||
this.__mt_btnImage = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnImage")));
|
||||
return this.__mt_btnImage;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnImage = value;
|
||||
this.SetNativeField("btnImage", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnPatterns")]
|
||||
private MonoTouch.UIKit.UIButton btnPatterns {
|
||||
get {
|
||||
this.__mt_btnPatterns = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnPatterns")));
|
||||
return this.__mt_btnPatterns;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnPatterns = value;
|
||||
this.SetNativeField("btnPatterns", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnStencilPattern")]
|
||||
private MonoTouch.UIKit.UIButton btnStencilPattern {
|
||||
get {
|
||||
this.__mt_btnStencilPattern = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnStencilPattern")));
|
||||
return this.__mt_btnStencilPattern;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnStencilPattern = value;
|
||||
this.SetNativeField("btnStencilPattern", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnShadows")]
|
||||
private MonoTouch.UIKit.UIButton btnShadows {
|
||||
get {
|
||||
this.__mt_btnShadows = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnShadows")));
|
||||
return this.__mt_btnShadows;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnShadows = value;
|
||||
this.SetNativeField("btnShadows", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnHitTesting")]
|
||||
private MonoTouch.UIKit.UIButton btnHitTesting {
|
||||
get {
|
||||
this.__mt_btnHitTesting = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnHitTesting")));
|
||||
return this.__mt_btnHitTesting;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnHitTesting = value;
|
||||
this.SetNativeField("btnHitTesting", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnTouchDrawing")]
|
||||
private MonoTouch.UIKit.UIButton btnTouchDrawing {
|
||||
get {
|
||||
this.__mt_btnTouchDrawing = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnTouchDrawing")));
|
||||
return this.__mt_btnTouchDrawing;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnTouchDrawing = value;
|
||||
this.SetNativeField("btnTouchDrawing", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnOnScreenFlag")]
|
||||
private MonoTouch.UIKit.UIButton btnOnScreenFlag {
|
||||
get {
|
||||
this.__mt_btnOnScreenFlag = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnOnScreenFlag")));
|
||||
return this.__mt_btnOnScreenFlag;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnOnScreenFlag = value;
|
||||
this.SetNativeField("btnOnScreenFlag", value);
|
||||
}
|
||||
}
|
||||
|
||||
[MonoTouch.Foundation.Connect("btnTransformations")]
|
||||
private MonoTouch.UIKit.UIButton btnTransformations {
|
||||
get {
|
||||
this.__mt_btnTransformations = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("btnTransformations")));
|
||||
return this.__mt_btnTransformations;
|
||||
}
|
||||
set {
|
||||
this.__mt_btnTransformations = value;
|
||||
this.SetNativeField("btnTransformations", value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Images
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (View.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero
|
||||
, (int)bitmapSize.Width, (int)bitmapSize.Height, 8
|
||||
, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB ()
|
||||
, CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
// declare vars
|
||||
UIImage apressImage = UIImage.FromFile ("Images/Icons/512_icon.png");
|
||||
PointF imageOrigin = new PointF ((imageView.Frame.Width / 2) - (apressImage.CGImage.Width / 2), (imageView.Frame.Height / 2) - (apressImage.CGImage.Height / 2));
|
||||
RectangleF imageRect = new RectangleF (imageOrigin.X, imageOrigin.Y, apressImage.CGImage.Width, apressImage.CGImage.Height);
|
||||
|
||||
// draw the image
|
||||
context.DrawImage (imageRect, apressImage.CGImage);
|
||||
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
protected void ShowTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
private void ShowCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Layers
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
Console.WriteLine ("LoadView() Called");
|
||||
base.LoadView ();
|
||||
|
||||
View = new View ();
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
using System;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Layers
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
|
||||
CGAffineTransform affineTransform = context.GetCTM ();
|
||||
//affineTransform.Scale (1, -1);
|
||||
affineTransform.Translate (1, -1);
|
||||
context.ConcatCTM (affineTransform);
|
||||
|
||||
// fill the background with white
|
||||
// set fill color
|
||||
UIColor.White.SetFill ();
|
||||
//context.SetRGBFillColor (1, 1, 1, 1f);
|
||||
// paint
|
||||
context.FillRect (rect);
|
||||
|
||||
PointF[] myStarPoints = { new PointF (5f, 5f)
|
||||
, new PointF (10f, 15f), new PointF (10f, 15f)
|
||||
, new PointF (15f, 5f), new PointF (15f, 5f)
|
||||
, new PointF (12f, 5f), new PointF (15f, 5f)
|
||||
, new PointF (2.5f, 11f), new PointF (2.5f, 11f)
|
||||
, new PointF (16.5f, 11f), new PointF (16.5f, 11f)
|
||||
, new PointF (5f, 5f) };
|
||||
|
||||
// create the layer
|
||||
using (CGLayer starLayer = CGLayer.Create (context, rect.Size)) {
|
||||
// set fill to blue
|
||||
starLayer.Context.SetRGBFillColor (0f, 0f, 1f, 1f);
|
||||
starLayer.Context.AddLines (myStarPoints);
|
||||
starLayer.Context.FillPath ();
|
||||
|
||||
// draw the layer onto our screen
|
||||
float starYPos = 5;
|
||||
float starXPos = 5;
|
||||
|
||||
for (int row = 0; row < 50; row++) {
|
||||
|
||||
// reset the x position for each row
|
||||
starXPos = 5;
|
||||
//
|
||||
for (int col = 0; col < 30; col++) {
|
||||
context.DrawLayer (starLayer, new PointF (starXPos, starYPos));
|
||||
starXPos += 20;
|
||||
}
|
||||
starYPos += 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.OnScreenUncorrectedTextRotation
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
View = new View ();
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.OnScreenUncorrectedTextRotation
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
// get a reference to the context
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
|
||||
// declare vars
|
||||
ShowCenteredTextAtPoint (context, 384, 400, "Hello World!", 60);
|
||||
}
|
||||
}
|
||||
|
||||
protected void ShowCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Shadows
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (View.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero, (int)bitmapSize.Width, (int)bitmapSize.Height, 8, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB (), CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
//==== create a grayscale shadow
|
||||
// 1) save graphics state
|
||||
context.SaveState ();
|
||||
// 2) set shadow context for offset and blur
|
||||
context.SetShadow (new SizeF (10, -10), 15);
|
||||
// 3) perform your drawing operation
|
||||
context.SetRGBFillColor (.3f, .3f, .9f, 1);
|
||||
context.FillRect (new RectangleF (100, 600, 300, 250));
|
||||
// 4) restore the graphics state
|
||||
context.RestoreState ();
|
||||
|
||||
//==== create a color shadow
|
||||
// 1) save graphics state
|
||||
context.SaveState ();
|
||||
// 2) set shadow context for offset and blur
|
||||
context.SetShadowWithColor(new SizeF (15, -15), 10, UIColor.Blue.CGColor);
|
||||
// 3) perform your drawing operation
|
||||
context.SelectFont ("Helvetica-Bold", 40, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
string text = "Shadows are fun and easy!";
|
||||
context.ShowTextAtPoint (150, 200, text, text.Length);
|
||||
// 4) restore the graphics state
|
||||
context.RestoreState ();
|
||||
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.StencilPattern
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (View.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero, (int)bitmapSize.Width, (int)bitmapSize.Height, 8, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB (), CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
// declare vars
|
||||
RectangleF patternRect = new RectangleF (0, 0, 16, 16);
|
||||
|
||||
// set the color space of our fill to be the patter colorspace
|
||||
context.SetFillColorSpace (CGColorSpace.CreatePattern (CGColorSpace.CreateDeviceRGB()));
|
||||
|
||||
// create a new pattern
|
||||
CGPattern pattern = new CGPattern (patternRect, CGAffineTransform.MakeRotation (.3f)
|
||||
, 16, 16, CGPatternTiling.NoDistortion, false, DrawPolkaDotPattern);
|
||||
|
||||
// set our fill as our pattern, color doesn't matter because the pattern handles it
|
||||
context.SetFillPattern (pattern, new float[] { 1, 0, 0, 1 });
|
||||
|
||||
// fill the entire view with that pattern
|
||||
context.FillRect (imageView.Frame);
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is our pattern callback. it's called by coregraphics to create
|
||||
/// the pattern base.
|
||||
/// </summary>
|
||||
protected void DrawPolkaDotPattern (CGContext context)
|
||||
{
|
||||
context.FillEllipseInRect (new RectangleF (4, 4, 8, 8));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is a slightly more complicated draw pattern, but using it is just
|
||||
/// as easy as the previous one. To use this one, simply change "DrawPolkaDotPattern"
|
||||
/// in line 54 above to "DrawStarPattern"
|
||||
/// </summary>
|
||||
protected void DrawStarPattern (CGContext context)
|
||||
{
|
||||
// declare vars
|
||||
float starDiameter = 16;
|
||||
// 144º
|
||||
float theta = 2 * (float)Math.PI * (2f / 5f);
|
||||
float radius = starDiameter / 2;
|
||||
|
||||
// move up and over
|
||||
context.TranslateCTM (starDiameter / 2, starDiameter / 2);
|
||||
|
||||
context.MoveTo (0, radius);
|
||||
for (int i = 1; i < 5; i++) {
|
||||
context.AddLineToPoint (radius * (float)Math.Sin (i * theta), radius * (float)Math.Cos (i * theta));
|
||||
}
|
||||
// fill our star as dark gray
|
||||
context.ClosePath ();
|
||||
context.FillPath ();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.TouchDrawing
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
public override void LoadView ()
|
||||
{
|
||||
Console.WriteLine ("LoadView() Called");
|
||||
base.LoadView ();
|
||||
|
||||
View = new View ();
|
||||
View.BackgroundColor = UIColor.White;
|
||||
}
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
using MonoTouch.CoreGraphics;
|
||||
using System.Drawing;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Collections.Generic;
|
||||
using MonoTouch.Foundation;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.TouchDrawing
|
||||
{
|
||||
public class View : UIView
|
||||
{
|
||||
List<Spot> touchSpots = new List<Spot> ();
|
||||
SizeF spotSize = new SizeF(15,15);
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public View () : base() { }
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// rect changes depending on if the whole view is being redrawn, or just a section
|
||||
/// </summary>
|
||||
public override void Draw (RectangleF rect)
|
||||
{
|
||||
Console.WriteLine ("Draw() Called");
|
||||
base.Draw (rect);
|
||||
|
||||
using (CGContext context = UIGraphics.GetCurrentContext ()) {
|
||||
// turn on anti-aliasing
|
||||
context.SetAllowsAntialiasing (true);
|
||||
|
||||
// loop through each spot and draw it
|
||||
foreach (Spot spot in touchSpots) {
|
||||
context.SetRGBFillColor (spot.Red, spot.Green, spot.Blue, spot.Alpha);
|
||||
context.FillEllipseInRect (new RectangleF (spot.Point, spotSize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void TouchesBegan (NSSet touches, UIEvent evt)
|
||||
{
|
||||
base.TouchesBegan (touches, evt);
|
||||
|
||||
// get the touch
|
||||
UITouch touch = touches.AnyObject as UITouch;
|
||||
if (touch != null) { AddSpot (touch); }
|
||||
}
|
||||
|
||||
public override void TouchesMoved (NSSet touches, UIEvent evt)
|
||||
{
|
||||
base.TouchesMoved (touches, evt);
|
||||
|
||||
// get the touch
|
||||
UITouch touch = touches.AnyObject as UITouch;
|
||||
if (touch != null) { AddSpot (touch); }
|
||||
}
|
||||
|
||||
protected void AddSpot (UITouch touch)
|
||||
{
|
||||
// create a random color spot at the point of touch, then add it to the others
|
||||
Spot spot = Spot.CreateNewRandomColor (touch.LocationInView (this));
|
||||
touchSpots.Add (spot);
|
||||
// tell the OS to redraw
|
||||
SetNeedsDisplay ();
|
||||
}
|
||||
|
||||
protected class Spot
|
||||
{
|
||||
public PointF Point { get; set; }
|
||||
public float Red { get; set; }
|
||||
public float Green { get; set; }
|
||||
public float Blue { get; set; }
|
||||
public float Alpha { get; set; }
|
||||
|
||||
public static Spot CreateNewRandomColor(PointF point)
|
||||
{
|
||||
Random rdm = new Random (Environment.TickCount);
|
||||
Spot spot = new View.Spot () {
|
||||
Red = (float)rdm.NextDouble ()
|
||||
, Green = (float)rdm.NextDouble ()
|
||||
, Blue = (float)rdm.NextDouble ()
|
||||
, Alpha = 1
|
||||
};
|
||||
spot.Point = point;
|
||||
return spot;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
using System;
|
||||
using MonoTouch.UIKit;
|
||||
using System.Drawing;
|
||||
using MonoTouch.CoreGraphics;
|
||||
|
||||
namespace Example_Drawing.Screens.iPad.Transformations
|
||||
{
|
||||
public class Controller : UIViewController
|
||||
{
|
||||
UIImageView imageView;
|
||||
|
||||
UIButton btnUp;
|
||||
UIButton btnRight;
|
||||
UIButton btnDown;
|
||||
UIButton btnLeft;
|
||||
UIButton btnReset;
|
||||
UIButton btnRotateLeft;
|
||||
UIButton btnRotateRight;
|
||||
UIButton btnScaleUp;
|
||||
UIButton btnScaleDown;
|
||||
|
||||
float currentScale, initialScale = 1.0f;
|
||||
PointF currentLocation, initialLocation = new PointF(380, 500);
|
||||
float currentRotation , initialRotation = 0;
|
||||
float movementIncrement = 20;
|
||||
float rotationIncrement = (float)(Math.PI * 2 / 16);
|
||||
float scaleIncrement = 1.5f;
|
||||
|
||||
|
||||
|
||||
#region -= constructors =-
|
||||
|
||||
public Controller () : base()
|
||||
{
|
||||
currentScale = initialScale;
|
||||
currentLocation = initialLocation;
|
||||
currentRotation = initialRotation;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override void ViewDidLoad ()
|
||||
{
|
||||
base.ViewDidLoad ();
|
||||
|
||||
// set the background color of the view to white
|
||||
View.BackgroundColor = UIColor.White;
|
||||
|
||||
// instantiate a new image view that takes up the whole screen and add it to
|
||||
// the view hierarchy
|
||||
RectangleF imageViewFrame = new RectangleF (0, -NavigationController.NavigationBar.Frame.Height, View.Frame.Width, View.Frame.Height);
|
||||
imageView = new UIImageView (imageViewFrame);
|
||||
View.AddSubview (imageView);
|
||||
|
||||
// add all of our buttons
|
||||
InitializeButtons ();
|
||||
|
||||
DrawScreen ();
|
||||
}
|
||||
|
||||
protected void DrawScreen ()
|
||||
{
|
||||
|
||||
// create our offscreen bitmap context
|
||||
// size
|
||||
SizeF bitmapSize = new SizeF (imageView.Frame.Size);
|
||||
using (CGBitmapContext context = new CGBitmapContext (IntPtr.Zero, (int)bitmapSize.Width, (int)bitmapSize.Height, 8, (int)(4 * bitmapSize.Width), CGColorSpace.CreateDeviceRGB (), CGImageAlphaInfo.PremultipliedFirst)) {
|
||||
|
||||
// save the state of the context while we change the CTM
|
||||
context.SaveState ();
|
||||
|
||||
// draw our circle
|
||||
context.SetRGBFillColor (1, 0, 0, 1);
|
||||
context.TranslateCTM (currentLocation.X, currentLocation.Y);
|
||||
context.RotateCTM (currentRotation);
|
||||
context.ScaleCTM (currentScale, currentScale);
|
||||
context.FillRect (new RectangleF (-10, -10, 20, 20));
|
||||
|
||||
// restore our transformations
|
||||
context.RestoreState ();
|
||||
|
||||
// draw our coordinates for reference
|
||||
DrawCoordinateSpace (context);
|
||||
|
||||
// output the drawing to the view
|
||||
imageView.Image = UIImage.FromImage (context.ToImage ());
|
||||
}
|
||||
}
|
||||
|
||||
protected void InitializeButtons ()
|
||||
{
|
||||
InitButton (ref btnUp, new PointF (600, 20), 50, @"/\");
|
||||
View.AddSubview (btnUp);
|
||||
InitButton (ref btnRight, new PointF (660, 60), 50, ">");
|
||||
View.AddSubview (btnRight);
|
||||
InitButton (ref btnDown, new PointF (600, 100), 50, @"\/");
|
||||
View.AddSubview (btnDown);
|
||||
InitButton (ref btnLeft, new PointF (540, 60), 50, @"<");
|
||||
View.AddSubview (btnLeft);
|
||||
InitButton (ref btnReset, new PointF (600, 60), 50, @"X");
|
||||
View.AddSubview (btnReset);
|
||||
InitButton (ref btnRotateLeft, new PointF (540, 140), 75, "<@");
|
||||
View.AddSubview (btnRotateLeft);
|
||||
InitButton (ref btnRotateRight, new PointF (635, 140), 75, "@>");
|
||||
View.AddSubview (btnRotateRight);
|
||||
InitButton (ref btnScaleUp, new PointF (540, 180), 75, "+");
|
||||
View.AddSubview (btnScaleUp);
|
||||
InitButton (ref btnScaleDown, new PointF (635, 180), 75, "-");
|
||||
View.AddSubview (btnScaleDown);
|
||||
|
||||
btnReset.TouchUpInside += delegate {
|
||||
currentScale = initialScale;
|
||||
currentLocation = initialLocation;
|
||||
currentRotation = initialRotation;
|
||||
DrawScreen();
|
||||
};
|
||||
|
||||
btnUp.TouchUpInside += delegate {
|
||||
currentLocation.Y += movementIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnDown.TouchUpInside += delegate {
|
||||
currentLocation.Y -= movementIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnLeft.TouchUpInside += delegate {
|
||||
currentLocation.X -= movementIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnRight.TouchUpInside += delegate {
|
||||
currentLocation.X += movementIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnScaleUp.TouchUpInside += delegate {
|
||||
currentScale = currentScale * scaleIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnScaleDown.TouchUpInside += delegate {
|
||||
currentScale = currentScale / scaleIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnRotateLeft.TouchUpInside += delegate {
|
||||
currentRotation += rotationIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
btnRotateRight.TouchUpInside += delegate {
|
||||
currentRotation -= rotationIncrement;
|
||||
DrawScreen ();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
protected void InitButton (ref UIButton button, PointF location, float width, string text)
|
||||
{
|
||||
button = UIButton.FromType (UIButtonType.RoundedRect);
|
||||
button.SetTitle (text, UIControlState.Normal);
|
||||
|
||||
button.Frame = new RectangleF (location, new SizeF (width, 33));
|
||||
}
|
||||
|
||||
// Draws the specified text starting at x,y of the specified height to the context.
|
||||
protected void DrawTextAtPoint (CGContext context, float x, float y, string text, int textHeight)
|
||||
{
|
||||
// configure font
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
// set it to fill in our text, don't just outline
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
// call showTextAtPoint
|
||||
context.ShowTextAtPoint (x, y, text, text.Length);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
protected void DrawCenteredTextAtPoint (CGContext context, float centerX, float y, string text, int textHeight)
|
||||
{
|
||||
context.SelectFont ("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Invisible);
|
||||
context.ShowTextAtPoint (centerX, y, text, text.Length);
|
||||
context.SetTextDrawingMode (CGTextDrawingMode.Fill);
|
||||
context.ShowTextAtPoint (centerX - (context.TextPosition.X - centerX) / 2, y, text, text.Length);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Draws our coordinate grid
|
||||
/// </summary>
|
||||
protected void DrawCoordinateSpace (CGBitmapContext context)
|
||||
{
|
||||
// declare vars
|
||||
int remainder;
|
||||
int textHeight = 20;
|
||||
|
||||
#region -= vertical ticks =-
|
||||
|
||||
// create our vertical tick lines
|
||||
using (CGLayer verticalTickLayer = CGLayer.Create (context, new SizeF (20, 3))) {
|
||||
|
||||
// draw a single tick
|
||||
verticalTickLayer.Context.FillRect (new RectangleF (0, 1, 20, 2));
|
||||
|
||||
// draw a vertical tick every 20 pixels
|
||||
float yPos = 20;
|
||||
int numberOfVerticalTicks = ((context.Height / 20) - 1);
|
||||
for (int i = 0; i < numberOfVerticalTicks; i++) {
|
||||
|
||||
// draw the layer
|
||||
context.DrawLayer (verticalTickLayer, new PointF (0, yPos));
|
||||
|
||||
// starting at 40, draw the coordinate text nearly to the top
|
||||
if (yPos > 40 && i < (numberOfVerticalTicks - 2)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)yPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawTextAtPoint (context, 30, (yPos - (textHeight / 2)), yPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
yPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region -= horizontal ticks =-
|
||||
|
||||
// create our horizontal tick lines
|
||||
using (CGLayer horizontalTickLayer = CGLayer.Create (context, new SizeF (3, 20))) {
|
||||
|
||||
horizontalTickLayer.Context.FillRect (new RectangleF (1, 0, 2, 20));
|
||||
|
||||
// draw a horizontal tick every 20 pixels
|
||||
float xPos = 20;
|
||||
int numberOfHorizontalTicks = ((context.Width / 20) - 1);
|
||||
for (int i = 0; i < numberOfHorizontalTicks; i++) {
|
||||
|
||||
context.DrawLayer (horizontalTickLayer, new PointF (xPos, 0));
|
||||
|
||||
// starting at 100, draw the coordinate text nearly to the top
|
||||
if (xPos > 100 && i < (numberOfHorizontalTicks - 1)) {
|
||||
|
||||
// draw it every 80 points
|
||||
Math.DivRem ((int)xPos, (int)80, out remainder);
|
||||
if (remainder == 0)
|
||||
DrawCenteredTextAtPoint (context, xPos, 30, xPos.ToString (), textHeight);
|
||||
}
|
||||
|
||||
// increment the position of the next tick
|
||||
xPos += 20;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// draw our "origin" text
|
||||
DrawTextAtPoint (context, 20, (20 + (textHeight / 2)), "Origin (0,0)", textHeight);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<SampleMetadata>
|
||||
<ID>064a9ab4-1e58-4cf6-a1c2-aab04997aa57</ID>
|
||||
<IsFullApplication>false</IsFullApplication>
|
||||
<Level>Intermediate</Level>
|
||||
<Tags>Core Graphics</Tags>
|
||||
</SampleMetadata>
|
|
@ -0,0 +1,32 @@
|
|||
Core Animation
|
||||
=================
|
||||
|
||||
This sample illustrates how to use Core Graphics in MonoTouch. It covers on and off screen graphics contexts, layers, transformations, text, images, stencils, patterns, shadows, and more.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
The samples are licensed under the MIT X11 license:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Bryan Costanich
|
После Ширина: | Высота: | Размер: 209 KiB |
|
@ -0,0 +1,7 @@
|
|||
{\rtf1\ansi\ansicpg1252\cocoartf1138
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
|
||||
|
||||
\f0\fs24 \cf0 TODO: when i'm back on my big monitor, take proper screenshots.}
|