美文网首页
iOS学习方法练习

iOS学习方法练习

作者: 我不白先生 | 来源:发表于2020-11-20 10:03 被阅读0次

很多APP都要用的如tabelView
新版本@synthesize window = _window;


image.png

练习

  • 1、在松手的时候判断哪张图片在左视图还是右视图
  • 2、拖入imageView数组到View视图中转换坐标然后label计数
  • 3、点击图片删除时添加了手势即必须打开用户交互功能实现
  • 4、删除图片后label计数也相应减少
    以下是代码


    image.png
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) IBOutletCollection(UIImageView) NSArray *imageViews;
@property (weak, nonatomic) IBOutlet UILabel *leftLabel;
@property (weak, nonatomic) IBOutlet UILabel *rightLabel;
@property (weak, nonatomic) IBOutlet UIView *leftView;
@property (weak, nonatomic) IBOutlet UIView *rightView;
@property(nonatomic,strong)UIImageView *dragIV;
@end

@implementation ViewController
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    UITouch *t = [touches anyObject];
    CGPoint p = [t locationInView:self.view];
    //判断p点 点击的是哪个图片
    for(UIImageView *iv in self.imageViews){
        if (CGRectContainsPoint(iv.frame, p)) {
            //removeFromSuperview移除控件
            //[iv removeFromSuperview];
            UIImageView *dragIV = [[UIImageView alloc]initWithFrame:iv.frame];
            dragIV.image = iv.image;
            [self.view addSubview:dragIV];
            self.dragIV = dragIV;
            //imageView的交互要打来手势方法才能执行
            dragIV.userInteractionEnabled = YES;
            //创建点击手势
            UITapGestureRecognizer *tap =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
            [dragIV addGestureRecognizer:tap];
        }
    }
}
-(void)tapAction:(UITapGestureRecognizer*)tap{
    if([tap.view.superview isEqual:self.leftView]){
        //把点击的view删除
        [tap.view removeFromSuperview];
        self.leftLabel.text = @(self.leftView.subviews.count).stringValue;
        
    }else{
        //把点击的view删除
        [tap.view removeFromSuperview];
        self.rightLabel.text = @(self.rightView.subviews.count).stringValue;
    }
}
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    UITouch *t = [touches anyObject];
    CGPoint p = [t locationInView:self.view];
    self.dragIV.center = p;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    if (CGRectContainsPoint(self.leftView.frame, self.dragIV.center)) {
        //得到相对于self.view的点
        CGPoint oldCenter = self.dragIV.center;
        //把相对于self.view的点转换成相对于leftView的点
        CGPoint newCenter = [self.view convertPoint:oldCenter toView:self.leftView];
        [self.leftView addSubview:self.dragIV];
        self.dragIV.center = newCenter;
        self.leftLabel.text = @(self.leftView.subviews.count).stringValue;
        
    }else if(CGRectContainsPoint(self.rightView.frame, self.dragIV.center)) {
        CGPoint oldCenter = self.dragIV.center;
        //把相对于self.view的点转换成相对于leftView的点
        CGPoint newCenter = [self.view convertPoint:oldCenter toView:self.rightView];
        
        [self.rightView addSubview:self.dragIV];
        self.dragIV.center = newCenter;
        self.rightLabel.text = @(self.rightView.subviews.count).stringValue;
        
    }else{//没有在view里松手
        [self.dragIV removeFromSuperview];
    }
    self.dragIV = nil;
    
}

相关文章

  • iOS学习方法练习

    很多APP都要用的如tabelView新版本@synthesize window = _window; 练习 1、...

  • 练习从记忆中检索新知识

    “检索练习”意味着自我测验,从记忆中检索知识和技能应当成为你的主要学习方法。怎样把检索练习当成学习方法使用:你...

  • 解读《刻意练习》——2有目的的练习

    今天我们来学习《刻意练习》——2 有目的的练习。 刻意练习是高效的练学习方法,区别与传统的练习,传统的练习就是不断...

  • iOS学习方法收集

    在这里收集一些iOS学习方法,会不断更新

  • 最有效的学习方法-刻意练习

    自从埃里克森的《刻意练习》这本书问世,刻意练习的学习方法就风靡全世界,甚至它一度被认为是最有效的学习方法。 那么这...

  • 一项针对学习方法的研究

    研究了哪些学习方法,各自策略和目的是什么? 测试。自测或练习。 分散练习。少量多次地练习。 混合练习。从一开始就用...

  • 用刻意练习重塑自己

    这本书向你介绍“‘正确的学习方法---刻意练习”。 刻意练习不是简单的重复重复再重复,而是需要好导...

  • 如何成为高效成长者

    一、找到适合你的学习方法 高效学习:适合自己、学习方法、短时间、注意力、解决难题、设定目标、名师指导 练习不必顾全...

  • 领读《刻意练习》-从来不存在1万小时定律?

    所有人都以为“杰出”源于“天赋”, “天才”却说:我的成就源于“正确的练习”! 《刻意练习》属于学习方法、方法论、...

  • iOS 学习方法

    记录我总结的学习方法。这里将程序员需要学习的语言,框架等都当做技能。 1.给每一个技能分好优先级 程序员需要学习的...

网友评论

      本文标题:iOS学习方法练习

      本文链接:https://www.haomeiwen.com/subject/epmnbktx.html