#define SWITCH_TAG 102
- (
void) updateSwitch:(
id)sender
{
//
toggle the switch from its current setting
UISwitch *s = [self.view.window switchWithTag:SWITCH_TAG];
[s setOn:!s.isOn];
}
- (void) updateTime:(id)sender
{
//
set the label to the current time
[self.view.window labelWithTag:LABEL_TAG].text = [[NSDate date] description];
}
//
This is a private version of the function that appears in my UIView Frame category
//
It's included here as a private function to avoid requiring the other file
CGRect rectWithCenter(CGRect rect, CGPoint center)
{
CGRect newrect = CGRectZero;
newrect.origin.x = center.x-CGRectGetMidX(rect);
newrect.origin.y = center.y-CGRectGetMidY(rect);
newrect.size = rect.size;
return newrect;
}
xcode debug instruction:print po bt
change to GDB debugger:Product”->“Manage Schemes”->Info->Debugger->select GDB
relevant information
http://blog.163.com/agw_slsyn/blog/static/30915112201213112813356/
http://www.cnblogs.com/lovecode/articles/2343818.html
- (
void) move: (NSTimer *) aTimer
{
//
Rotate each iteration by 1% of PI
CGFloat angle = theta * (M_PI /
100.0f);
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
//
Theta ranges between 0% and 199% of PI, i.e. between 0 and 2*PI
theta = (theta +
1) %
200;
//
For fun, scale by the absolute value of the cosine
float degree = cos(angle);
if (degree <
0.0) degree *= -
1.0f;
degree +=
0.5f;
//
Create add scaling to the rotation transform
CGAffineTransform scaled = CGAffineTransformScale(transform, degree, degree);
//
Apply the affine transform
[[self.view viewWithTag:
999] setTransform:scaled];
}
- (void) fadeOut: (id) sender
{
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:
1.0];
[[self.view viewWithTag:
999] setAlpha:
0.0f];
[UIView commitAnimations];
self.navigationItem.rightBarButtonItem = BARBUTTON(
@"
Fade In
", @selector(fadeIn:));
}
- (
void) fadeIn: (
id) sender
{
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:
1.0];
[[self.view viewWithTag:
999] setAlpha:
1.0f];
[UIView commitAnimations];
self.navigationItem.rightBarButtonItem = BARBUTTON(
@"
Fade Out
", @selector(fadeOut:));
}
- (void) swap: (id) sender
{
//
hide the button
self.navigationItem.rightBarButtonItem = nil;
UIView *frontObject = [[self.view subviews] objectAtIndex:
2];
UIView *backObject = [[self.view subviews] objectAtIndex:
1];
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:
1.0];
frontObject.alpha =
0.0f;
backObject.alpha =
1.0f;
frontObject.transform = CGAffineTransformMakeScale(
0.25f,
0.25f);
backObject.transform = CGAffineTransformIdentity;
[self.view exchangeSubviewAtIndex:
1 withSubviewAtIndex:
2];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
[UIView commitAnimations];
}
- (void) flip: (id) sender
{
//
hide the button
self.navigationItem.rightBarButtonItem = nil;
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:
1.0];
UIView *whiteBackdrop = [self.view viewWithTag:
100];
//
Choose left or right flip
if ([(UISegmentedControl *)self.navigationItem.titleView selectedSegmentIndex])
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:whiteBackdrop cache:YES];
else
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:whiteBackdrop cache:YES];
NSInteger purple = [[whiteBackdrop subviews] indexOfObject:[whiteBackdrop viewWithTag:
999]];
NSInteger maroon = [[whiteBackdrop subviews] indexOfObject:[whiteBackdrop viewWithTag:
998]];
[whiteBackdrop exchangeSubviewAtIndex:purple withSubviewAtIndex:maroon];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
[UIView commitAnimations];
}