CollectionViewTransition ported to 64bits

This commit is contained in:
Paola Villarreal 2014-05-22 20:54:37 -05:00
Родитель ed90da2638
Коммит ca2fb95ad3
9 изменённых файлов: 59 добавлений и 56 удалений

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

@ -1,8 +1,8 @@
using System;
using System.Drawing;
using MonoTouch.CoreAnimation;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using CoreAnimation;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -11,7 +11,7 @@ namespace CollectionViewTransition {
public static readonly NSString Key = new NSString ("APLCollectionViewCell");
[Export ("initWithFrame:")]
public APLCollectionViewCell (RectangleF frame) : base (frame)
public APLCollectionViewCell (CGRect frame) : base (frame)
{
BackgroundColor = UIColor.Cyan;
ImageView = new UIImageView (Bounds);

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

@ -1,8 +1,8 @@
//#define NO_IMAGES
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -15,12 +15,12 @@ namespace CollectionViewTransition {
CollectionView.RegisterClassForCell (typeof (APLCollectionViewCell), APLCollectionViewCell.Key);
}
public override int NumberOfSections (UICollectionView collectionView)
public override nint NumberOfSections (UICollectionView collectionView)
{
return 1;
}
public override int GetItemsCount (UICollectionView collectionView, int section)
public override nint GetItemsCount (UICollectionView collectionView, nint section)
{
return MAX_COUNT;
}
@ -43,7 +43,7 @@ namespace CollectionViewTransition {
return new APLTransitionLayout (fromLayout, toLayout);
}
public virtual UICollectionViewController NextViewControllerAtPoint (PointF p)
public virtual UICollectionViewController NextViewControllerAtPoint (CGPoint p)
{
return null;
}

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

@ -1,5 +1,5 @@
using System;
using MonoTouch.UIKit;
using UIKit;
namespace CollectionViewTransition {

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

@ -1,7 +1,7 @@
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -13,13 +13,13 @@ namespace CollectionViewTransition {
public override void ItemSelected (UICollectionView collectionView, NSIndexPath indexPath)
{
NavigationController.PushViewController (NextViewControllerAtPoint (PointF.Empty), true);
NavigationController.PushViewController (NextViewControllerAtPoint (CGPoint.Empty), true);
}
public override UICollectionViewController NextViewControllerAtPoint (PointF p)
public override UICollectionViewController NextViewControllerAtPoint (CGPoint p)
{
UICollectionViewFlowLayout grid = new UICollectionViewFlowLayout () {
ItemSize = new SizeF (75.0f, 75.0f),
ItemSize = new CGSize (75.0f, 75.0f),
SectionInset = new UIEdgeInsets (10.0f, 10.0f, 10.0f, 10.0f)
};
return new APLGridCollectionViewController (grid) {

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

@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using MonoTouch.CoreGraphics;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -20,10 +20,10 @@ namespace CollectionViewTransition {
public override void PrepareLayout ()
{
SizeF size = CollectionView.Bounds.Size;
PointF center = new PointF (size.Width / 2.0f, size.Height / 2.0f);
CGSize size = CollectionView.Bounds.Size;
CGPoint center = new CGPoint (size.Width / 2.0f, size.Height / 2.0f);
int itemCount = CollectionView.NumberOfItemsInSection (0);
int itemCount = (int) CollectionView.NumberOfItemsInSection (0);
if (attributesArray == null)
attributesArray = new List<UICollectionViewLayoutAttributes> (itemCount);
@ -48,7 +48,7 @@ namespace CollectionViewTransition {
float angle = angles [angleIndex];
var path = NSIndexPath.FromItemSection (i, 0);
UICollectionViewLayoutAttributes attributes = UICollectionViewLayoutAttributes.CreateForCell (path);
attributes.Size = new SizeF (150, 200);
attributes.Size = new CGSize (150, 200);
attributes.Center = center;
attributes.Transform = CGAffineTransform.MakeRotation (angle);
attributes.Alpha = (i > stackCount) ? 0.0f : 1.0f;
@ -63,16 +63,16 @@ namespace CollectionViewTransition {
attributesArray = null;
}
public override SizeF CollectionViewContentSize {
public override CGSize CollectionViewContentSize {
get { return CollectionView.Bounds.Size; }
}
public override UICollectionViewLayoutAttributes LayoutAttributesForItem (NSIndexPath indexPath)
{
return attributesArray [indexPath.Item];
return attributesArray [(int)indexPath.Item];
}
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect (RectangleF rect)
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect (CGRect rect)
{
return attributesArray.ToArray ();
}

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

@ -1,7 +1,7 @@
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -12,7 +12,7 @@ namespace CollectionViewTransition {
UINavigationController navigationController;
IUIViewControllerContextTransitioning context;
float initialPinchDistance;
PointF initialPinchPoint;
CGPoint initialPinchPoint;
public APLTransitionController (UICollectionView view, UINavigationController controller)
{
@ -25,13 +25,13 @@ namespace CollectionViewTransition {
public UINavigationControllerOperation NavigationOperation { get; set; }
void InteractionBegan (PointF point)
void InteractionBegan (CGPoint point)
{
UIViewController viewController = ((APLCollectionViewController)navigationController.TopViewController).NextViewControllerAtPoint (point);
if (viewController != null) {
navigationController.PushViewController (viewController, true);
} else {
navigationController.PopViewControllerAnimated (true);
navigationController.PopViewController (true);
}
}
@ -84,11 +84,11 @@ namespace CollectionViewTransition {
if (sender.NumberOfTouches < 2)
return;
PointF point1 = sender.LocationOfTouch (0, sender.View);
PointF point2 = sender.LocationOfTouch (1, sender.View);
CGPoint point1 = sender.LocationOfTouch (0, sender.View);
CGPoint point2 = sender.LocationOfTouch (1, sender.View);
float distance = (float) Math.Sqrt ((point1.X - point2.X) * (point1.X - point2.X) +
(point1.Y - point2.Y) * (point1.Y - point2.Y));
PointF point = sender.LocationInView (sender.View);
CGPoint point = sender.LocationInView (sender.View);
if (sender.State == UIGestureRecognizerState.Began) {
if (HasActiveInteraction)
@ -106,14 +106,14 @@ namespace CollectionViewTransition {
switch (sender.State) {
case UIGestureRecognizerState.Changed:
float offsetX = point.X - initialPinchPoint.X;
float offsetY = point.Y - initialPinchPoint.Y;
float offsetX = (float) (point.X - initialPinchPoint.X);
float offsetY = (float) (point.Y - initialPinchPoint.Y);
float distanceDelta = distance - initialPinchDistance;
if (NavigationOperation == UINavigationControllerOperation.Pop)
distanceDelta = -distanceDelta;
SizeF size = collectionView.Bounds.Size;
CGSize size = collectionView.Bounds.Size;
float dimension = (float)Math.Sqrt (size.Width * size.Width + size.Height * size.Height);
float progress = (float) Math.Max (Math.Min (distanceDelta / dimension, 1.0), 0.0);
Update (progress, new UIOffset (offsetX, offsetY));

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

@ -1,6 +1,6 @@
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using CoreGraphics;
using Foundation;
using UIKit;
namespace CollectionViewTransition {
@ -16,8 +16,8 @@ namespace CollectionViewTransition {
public void SetTransitionProgress (float transitionProgress)
{
base.TransitionProgress = transitionProgress;
float offsetH = GetValueForAnimatedKey ("offsetH");
float offsetV = GetValueForAnimatedKey ("offsetV");
float offsetH = (float)GetValueForAnimatedKey ("offsetH");
float offsetV = (float)GetValueForAnimatedKey ("offsetV");
Offset = new UIOffset (offsetH, offsetV);
}
@ -28,12 +28,12 @@ namespace CollectionViewTransition {
Offset = offset;
}
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect (RectangleF rect)
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect (CGRect rect)
{
UICollectionViewLayoutAttributes[] attributes = base.LayoutAttributesForElementsInRect (rect);
foreach (var attribute in attributes) {
PointF center = attribute.Center;
attribute.Center = new PointF (center.X + Offset.Horizontal, center.Y + Offset.Vertical);
CGPoint center = attribute.Center;
attribute.Center = new CGPoint (center.X + Offset.Horizontal, center.Y + Offset.Vertical);
}
return attributes;
}
@ -41,8 +41,8 @@ namespace CollectionViewTransition {
public override UICollectionViewLayoutAttributes LayoutAttributesForItem (NSIndexPath indexPath)
{
UICollectionViewLayoutAttributes attributes = base.LayoutAttributesForItem (indexPath);
PointF center = attributes.Center;
attributes.Center = new PointF (center.X + Offset.Horizontal, center.Y + Offset.Vertical);
CGPoint center = attributes.Center;
attributes.Center = new CGPoint (center.X + Offset.Horizontal, center.Y + Offset.Vertical);
return attributes;
}
}

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

@ -1,6 +1,6 @@
using System;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using Foundation;
using UIKit;
namespace CollectionViewTransition {

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

@ -17,12 +17,13 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<DefineConstants>DEBUG;XAMCORE_2_0;ARCH_64</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchLink>None</MtouchLink>
<ConsolePause>false</ConsolePause>
<MtouchDebug>true</MtouchDebug>
<MtouchExtraArgs>--registrar:static --nofastsim --override-abi x86_64</MtouchExtraArgs>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
<DebugType>full</DebugType>
@ -84,7 +85,9 @@
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="monotouch" />
<Reference Include="Xamarin.iOS">
<HintPath>\Developer\MonoTouch\usr\lib\mono\Xamarin.iOS\Xamarin.iOS.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
@ -160,4 +163,4 @@
<ITunesArtwork Include="Resources\iTunesArtwork" />
<ITunesArtwork Include="Resources\iTunesArtwork%402x" />
</ItemGroup>
</Project>
</Project>