view的镜像转换实现,按钮自动隐藏 点击又重新显示

在做导航时,可能会从镜子里看手机界面,于是有了“镜像转换”的需求,镜像转换很容易实现,按如下命令即可解决:(线性代数里的仿射变换就有镜面转换)

    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)发送消息则会崩溃。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值