在做导航时,可能会从镜子里看手机界面,于是有了“镜像转换”的需求,镜像转换很容易实现,按如下命令即可解决:(线性代数里的仿射变换就有镜面转换)
self.View.transform = CGAffineTransformScale(self.View.transform, 1.0, -1.0);
项目中有需求,在不点击按钮,隔 3 秒之后自动隐藏,点击界面后又会重现显示。可用如下方式实现:
先定义 NSTimer 实例:(需要隐藏的是 titleview)
NSTimer
*_timeCount;
设置 timer 事件:
- (void)setTimer{
if (_timeCount)
{
[_timeCount invalidate];
[_timeCount release];
_timeCount = nil;
}
_timeCount = [[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(hideTitleView) userInfo:nil repeats:NO] retain];
}
接收点击事件的函数:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
self.titleView.hidden = NO;
[self setTimer];
}
注意1:这里需要手动控制内存,用了一个retain,并在有 timer 事件时销毁,重新实例化(因为有可能点击的时候已经到了设置的时间了,本来点击要显示view的,结果因为到时间却不能显示,故而需要销毁重新创建)。否则在设置的时间要结束时点击,timer实例被系统释放回收,再发送消息 [_timeCount invalidate]; 会有崩溃的危险。
注意2: 给nil对象发送消息,尽管不会报错,但是也不会有任何效果;但是给一个release的对象(没有赋值为nil)发送消息则会崩溃。