lantianyiming 2013-05-14 02:51 采纳率: 0%
浏览 3139
已采纳

IOS/xcode-开关按钮改变位置

需要一个按钮可以切换一个元素的位置。

目前我写的代码:

-(IBAction)menuTouched{
// Push menu
UITableView * sideMenu = [[UITableView alloc] initWithFrame:CGRectMake(1060, 88, 63, 661)];
sideMenu.backgroundColor = [UIColor redColor];
[self.view addSubview:sideMenu];
// Animate
[UIView animateWithDuration:1.25 animations:^{
    sideMenu.frame = CGRectMake(960, 88, 63, 661);
}];
}

在点击按钮时 tableView可以隐藏起来,但是现在我需要按同样的按钮将tableView显示出来,因此,应该怎么实现使用按钮切换tableView的隐藏和显示?只要改变X坐标就可以,谢谢。

  • 写回答

3条回答 默认 最新

  • ReyZhang 移动开发领域新星创作者 2013-05-14 05:38
    关注

    1.定义一个标志位用来表示当前UITableView的显示状态,声明需要用到的三个成员变量

    BOOL isShow;
    UITableView *sideMenu;
    CGFloat posX;
    

    2.在viewDidLoad中做初始设置

    -(void)viewDidLoad {
        isShow=NO;
        //to do something...
        sideMenu = [[UITableView alloc] initWithFrame:CGRectMake(1060, 88, 63, 661)];
        sideMenu.backgroundColor = [UIColor redColor];
        [self.view addSubview:sideMenu];
    }
    

    3.你所控制UITableView的显示只是frame的x坐标的变化,所以你可以根据开关状态来计算这个posX,还有就是你的这个UITableview 不需要在每次点击时来创建.把创建UITableView的代码放到viewDidLoad函数来初始化.见上面的代码.

    -(IBAction)menuTouched{
       posX=isShow ? 1060 : 960       
       // Animate
       [UIView animateWithDuration:1.25 animations:^{
           sideMenu.frame = CGRectMake(posX, 88, 63, 661);
       }];
       isShow=!isShow;  //切换开关状态
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题