ingen slogan
monotouch
2010 – Goals for the year
1 Jan 10
I didn’t make any new year promise to myself. Mostly because there’s nothing more broken than a promise made when welcoming the new year. So, instead of making promises, I’ve made goals that i’ll try to complete and deliver.
#1 – My first iPhone application released
A couple of months ago I beta tested MonoTouch, the .NET framework for the iPhone. It’s a great tool for all of us who doesn’t want to learn Objective-C. After some testing I started to do some actual work for an application. It still needs more work to be functional but at least I have something to go on. I all goes well this will be done somewhat in April.
#2 – Payson Drupal Module
This one is a bit disturbing and embarrasing. For a long time I’ve wanted to make this module for Drupal where you, as a user have the possibility to sponsor sites by paying a small amount of cash using paysons money transaction system. I like Payson, and it really deserves more focus
. Hopefulle this will come handy to Drupal site administrators. Hopefully this will can be expected in fall of 2010.
#3 – Community Site based on Django
The Swedish Community has for a long time lacked a good community web site for tracking one of the finest things with open source – The great open project that makes whatever disitribution worthy of. It can be all from background search engines like beagle to music players like Listen. All small components that makes the linux experience that great! This should be expected in late 2010.
That’s the three prioritized goals that I have as it is right now. I’ll end this post now to get started
.
See you!
/Marcus
#MonoTouch how to – Drag and Drop Image
23 Sep 09
My blog posts are commonly in Swedish, but since this might interest users outside the borders of Sweden I decided to write this post in English.
Today, I’ll show how easy it is to Drag an Image around the screen using MonoTouch. Bear with me though, it’s my first how to
.
It’s actually really simple, and you won’t need the Interface Builder.
What we need to do is to create an UIImageView class that overrides the functions TouchesBegan, TouchesMoved and TouchesEnded. It’s looking like this:
public class myDraggableImage : UIImageView {
//Store locations for remembering the last positions, and counting the future ones.
PointF Location;
PointF StartLocation;
bool haveBeenTouchedOnce = false;
public myDraggableImage ( RectangleF frame ){
//Set the position of the frame with RectangleF (Replacement of CGRectangle)
this.Frame = frame;
StartLocation = this.Frame.Location;
}
//This event occurs when you just touch the object
public override void TouchesBegan (MonoTouch.Foundation.NSSet touches, MonoTouch.UIKit.UIEvent e)
{
Console.WriteLine("Touched the object");
Location = this.Frame.Location;
var touch = (UITouch) e.TouchesForView (this).AnyObject;
var bounds = Bounds;
StartLocation = touch.LocationInView(this);
this.Frame = new RectangleF(Location,bounds.Size);
}
//This event occurs when you drag it around
public override void TouchesMoved (MonoTouch.Foundation.NSSet touches, MonoTouch.UIKit.UIEvent e)
{
Console.WriteLine("Dragged the object");
var bounds = Bounds;
var touch = (UITouch) e.TouchesForView (this).AnyObject;
//Always refer to the StartLocation of the object that you've been dragging.
Location.X += touch.LocationInView(this).X - StartLocation.X;
Location.Y += touch.LocationInView(this).Y - StartLocation.Y;
this.Frame = new RectangleF(Location,bounds.Size);
haveBeenTouchedOnce = true;
}
public override void TouchesEnded (MonoTouch.Foundation.NSSet touches, MonoTouch.UIKit.UIEvent e)
{
StartLocation = Location;
}
}
What’s being done here is that as soon as we Touch the object it will run ”TouchesBegan” to start keeping track of the Object. And when we are moving it around, it constantly calls ”TouchesMoved” where we are updating the position of the UIImageView on the screen.
When you’ve implemented the class class in your project, all you need to do is to create the object within ”public override bool FinishedLaunching”.
It can for instance look like this:
myDraggableImage img = new myDraggableImage(new RectangleF(64,64,64,64)); img.UserInteractionEnabled = true; img.BackgroundColor = UIColor.Green; img.Hidden = false; window.AddSubview(img);
The result will be a UIImageView that can be dragged around the screen.