zoukankan      html  css  js  c++  java
  • 拖动视图

    @interface MoveView : UIView
    {
        CGPoint startPoint;
    }
    
    
    #import "MoveView.h"
    
    @implementation MoveView
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
            //允许用户交互
            self.userInteractionEnabled = YES;
        }
        return self;
    }
    
    - (id)initWithImage:(UIImage *)image
    {
        self = [super initWithImage:image];
        if (self) {
            //允许用户交互
            self.userInteractionEnabled = YES;
        }
        return self;
    }
    
    - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //保存触摸起始点位置
        CGPoint point = [[touches anyObject] locationInView:self];
        startPoint = point;
        
        //该view置于最前
        [[self superview] bringSubviewToFront:self];
    }
    
    -(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //计算位移=当前位置-起始位置
        CGPoint point = [[touches anyObject] locationInView:self];
        float dx = point.x - startPoint.x;
        float dy = point.y - startPoint.y;
        
        //计算移动后的view中心点
        CGPoint newcenter = CGPointMake(self.center.x + dx, self.center.y + dy);
        
        
        /* 限制用户不可将视图托出屏幕 */
        float halfx = CGRectGetMidX(self.bounds);
        //x坐标左边界
        newcenter.x = MAX(halfx, newcenter.x);
        //x坐标右边界
        newcenter.x = MIN(self.superview.bounds.size.width - halfx, newcenter.x);
        
        //y坐标同理
        float halfy = CGRectGetMidY(self.bounds);
        newcenter.y = MAX(halfy, newcenter.y);
        newcenter.y = MIN(self.superview.bounds.size.height - halfy, newcenter.y);
        
        //移动view
        self.center = newcenter;
    }
    
    @end
    

      

  • 相关阅读:
    2014/7/24
    POJ 3414 Pots BFS
    hdu5119 Happy Matt Friends(dp)
    hdu1285 拓扑排序+优先队列
    串口參数具体解释:波特率,数据位,停止位,奇偶校验位
    浅谈软件销售工作
    设计模式及其学习方法的个人理解
    Apache + Tomcat + JK 集群
    SpringMVC案例2----基于spring2.5的注解实现
    poj
  • 原文地址:https://www.cnblogs.com/joesen/p/3842614.html
Copyright © 2011-2022 走看看