OObjective

Stella981
• 阅读 387

ViewController.m文件

//
//  ViewController.m
//  动画
//
//  Created by DC017 on 15/12/22.
//  Copyright © 2015年 DC017. All rights reserved.
//

#import "ViewController.h"
//宏定义
#define W [UIScreen mainScreen].bounds.size.width
#define H [UIScreen mainScreen].bounds.size.height
#define YANSE(r,g,b,a) [UIColor colorWithRed:r/225.0 green:g/225.0 blue:b/225.0 alpha:a]
//设置layer的宽和高
#define LayerWidth 50

@interface ViewController (){
    CALayer * layer1;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    
    layer1=[[CALayer alloc]init];
    //设置宽度
    layer1.bounds=CGRectMake(0, 0, LayerWidth, LayerWidth);
    //设置中心点的位置
    layer1.position=CGPointMake(W/2, H/2);
    //设置背景颜色
    layer1.backgroundColor=YANSE(144, 80, 122, 1).CGColor;
    //添加
    [self.view.layer addSublayer:layer1];
    //设置圆角
    layer1.cornerRadius=LayerWidth/2;
    
    //设置阴影
    //设置阴影颜色
    layer1.shadowColor=[UIColor grayColor].CGColor;
    layer1.shadowOffset=CGSizeMake(2, 2);
    layer1.shadowOpacity=0.8;//设置透明度
    
    //描点(x,y  范围都是0-1)
//    layer1.anchorPoint=CGPointMake(1, 1);
    
    NSLog(@"%@",layer1);
    
   
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    //获取点击位置
    UITouch * touch=[touches anyObject];
    //打印点击位置
    NSLog(@"点击位置是:%@", NSStringFromCGPoint([touch locationInView:self.view]));
    //打印layer的对象地址
    NSLog(@"%@",self.view.layer.sublayers);
    //获取对象
    CALayer * layer2=self.view.layer.sublayers[2];
    //将layer移到点击位置
    //点击位置通过locationInView来获取
    layer2.position=[touch locationInView:self.view];
    
    //放大
    CGFloat width=layer2.bounds.size.width;
    
    if (width==LayerWidth) {
        width=LayerWidth*4;
    }else{
        width=LayerWidth;
    }
    layer2.bounds=CGRectMake(0, 0, width, width);
    layer2.cornerRadius=width/2;//圆角是根据当前图形宽度来设置
    
    
    
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Souleigh ✨ Souleigh ✨
3年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Wesley13 Wesley13
3年前
mysql简单常用语句汇总
1\.常用函数uuid和时间戳SELECTUUID(),UNIX_TIMESTAMP();将时间戳转为日期格式FROM_UNIXTIME(mw.created_at,'%Y%m%d%H:%i:%s')设置参数select@m_no:max(m_no)fromvc_m;set@m
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
CyclicBarrier 循环屏障
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/  Created by zyBourn on 15/12/25. /public class 
Stella981 Stella981
3年前
IOS开发网络阶段之NSURLSession
//// ViewController.m// 02NSURLSession//// Createdby鹿微微鹿on16/4/27.// Copyright(c)2016年鹿微微鹿.Allrightsreserved.////在这里总结一个方法,通过参数返回另一个页面一个消息或者其他东西//可以把
Wesley13 Wesley13
3年前
IOS开发之获取MP3音乐信息
每一个音乐文件都有自己的歌手,专辑,封面等信息,我们可以获取这些信息然后做音乐播放器的时候,可以使用这些信息;//// ViewController.m// 02获取mp3音乐信息//// Createdby鹿微微鹿on16/5/6.// Copyright(c)2016年鹿微微鹿.Allrights
Stella981 Stella981
3年前
CountDownLatch 计数栓
import java.util.concurrent.CountDownLatch;/  Created by zyBourn on 15/12/25. /public class Entity {    public static void main(String args)
Wesley13 Wesley13
3年前
5步实现数据指标增长,提升数据分析能力
!5步实现数据指标增长,提升数据分析能力(https://s4.51cto.com/images/blog/202009/15/081547a226ce35f8ee53d7e5675f38cb.png?xossprocessimage/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_10