首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《Motion Design for iOS》(三十五)

    CGFloat windowWidth = self.window.bounds.size.width; // 将背景添加到界面上 UIImageView *backgroundView = [[UIImageView...[self.window addSubview:backgroundView]; // 添加箭头和文本 UIImageView *arrowView = [[UIImageView alloc...// “Ministry of Fun”图片 UIImageView *ministryView = [[UIImageView alloc] initWithFrame:CGRectMake(...我本可以懒一点,不将按钮做成一个真的UIButton,而是使用一个UIImageView,但我想演示如何为一个自定义的UIButton设置点击的和普通的图片。...接着我设置按钮的位置并将它添加到界面上。 这里是目前状态的界面,以及点击按钮时不同状态的演示。 我们UIControlStateHighlighted状态的图片只是将白色边框换成了白色的填充。

    50620

    创建属于自己的静态库,并合并静态库

    参数2: 待加载的图片的URL  */ + (void)SL_setImageView:(UIImageView *)imageView withURL:(NSString *)url; @...= [NSURL URLWithString:url];         NSData * data = [NSData dataWithContentsOfURL:URL];         UIImage...此时的.a文件变黑了,我们就可以在Finder中找到此文件了.     实际上会有两个.a文件,如下图 ? ?     它们分别是真机所需要的静态库和模拟器所需要的静态库.     ...    首先在终端上输入lipo -create,然后将两个静态库文件拖到终端中,再在最后输入-ouput 紧跟一个路径,这是合并后的静态库存放的位置. ?...在代码中使用静态库:     UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100

    1.2K30

    面向对象设计的设计模式(十二):享元模式

    模式类图 享元模式类图 代码示例 场景概述 这里我们使用《Objective-C 编程之道:iOS设计模式解析》里的第21章使用的例子:在一个页面展示数百个大小,位置不同的花的图片,然而这些花的样式只有...抽象享元类就是Objective-C的原生UIImageView,它可以显示图片 具体享元类可以自己定义一个类继承于UIImageView,因为后续我们可以直接添加更多其他的属性。...因为在Objective-C里面,UIImage是FlowerImageView所继承的UIImageView的一个属性,所以在这里FlowerImageView就直接包含了UIImage。...抽象享元类是UIImageView,它的一个内部对象是UIImage(这两个都是Objective-C原生的关于图片的类)。...(但是因为UIImage是FlowerImageView的一个外部可以引用的属性,所以在这里客户端还是可以访问到UIImage,这是Objective-C原生的实现。

    64820

    iOS性能优化——图片加载和处理

    以我们常见的UITableView和UICollectionView为例,假如我们在使用一个多图片显示的功能: 在上下滑动显示图片的过程中,我们会在cellFor的方法加载UIImage图片、赋值给UIImageView...如下图所示: 我们加载jpeg的图片,然后进行相关设置,解码后根据设置生成CGImage缩略图,最后包装成UIImage,最终传递给UIImageView渲染。...;当图片被赋值给UIImageView时,CALayer读取图片内容进行渲染,所以需要对图片进行解码; 而上文的缩略图生成过程中,已经对图片进行解码操作,此时的UIImage只是一个CGImage的封装...,所以当UIImage赋值给UIImageView时,CALayer可以直接使用CGImage所持有的图像数据。...总结 应用上述的优化策略,已经能对图片加载有比较好的优化。 WWDC后续还有对CustomDrawing和CALayer的BackingStore的介绍,因为与图片关系不大,不在此赘述。

    2.1K170

    iOS性能优化——图片加载和处理

    在上下滑动显示图片的过程中,我们会在cellFor的方法加载UIImage图片、赋值给UIImageView,相当于在主线程同时进行IO操作、解码操作等,会造成内存迅速增长和CPU负载瞬间提升。...我们加载jpeg的图片,然后进行相关设置,解码后根据设置生成CGImage缩略图,最后包装成UIImage,最终传递给UIImageView渲染。...;当图片被赋值给UIImageView时,CALayer读取图片内容进行渲染,所以需要对图片进行解码; 而上文的缩略图生成过程中,已经对图片进行解码操作,此时的UIImage只是一个CGImage的封装...,所以当UIImage赋值给UIImageView时,CALayer可以直接使用CGImage所持有的图像数据。...总结 应用上述的优化策略,已经能对图片加载有比较好的优化。 WWDC后续还有对CustomDrawing和CALayer的BackingStore的介绍,因为与图片关系不大,不在此赘述。

    2.4K30

    UIImageView 使用 padding 为图片设置内边距的 2 种方案

    一、前言 不像 Flutter / swiftUI 那样,UIimageView 并没有现成的 这里介绍两种为 UIImageView 内图片设置边距的方法均为自定义方法 二、方案 包括两种方案 第一种...:借鉴 stackoverflow 上大佬提出的 第二种:我自己优化的 2.1 设置 UIImage 大小 先设置 UIImage 的大小,再将其放入 UIImageView 内 设置 contentMode...2.2 方案一使用 在设置 UIImageView.image 是调用即可 xxxUIImageView.image = imageWithImage(image: UIImage(named:...类新增拓展方法 该方法是对 stackoverflow 方案的改良版,不需要提前给定图片大小 通过设置内边距的大小,就可以自动适应、调整 设置上更为方便,同时能自动兼容各种图像 extension UIImageView...2.4 方案二使用 分两步走,可以在 config 时直接设置 如果你的 UIImageView 会不断的变化,那么可以把 padding 移到 layoutSubviews 中调用,以便同步视图刷新

    2.3K10

    iOS开发CoreAnimation解读之六——CATransform3D变换的应用

    的一些属性,这个属性的改变,可以产生动画的效果。...m12:和m21一起决定z轴的旋转 m13:和m31一起决定y轴的旋转 m14: m21:和m12一起决定z轴的旋转 m22:y轴方向进行缩放 m23:和m32一起决定x轴的旋转 m24: m31:和...另外,当我们有垂直于z轴的旋转分量时,设置m34的值可以增加透视效果,也可以理解为景深效果,例如:     UIImageView * imageView = [[UIImageView alloc]initWithFrame...4、旋转翻转变换 //将一个旋转的效果进行翻转  CATransform3D CATransform3DInvert (CATransform3D t); 例如:     UIImageView * imageView... = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];     imageView.image = [UIImage

    1.5K20

    【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

    停止播放 | ③ 是否正在播放 ) ( 3 ) UIImageView 动画 执行流程 ( ① 准备 UIImage 数组 | ② 设置动画参数 UIImage数组 时长 重复次数 | ③ 启动动画 )...设置 frame 属性 , 主要是设置 位置 和 大小 , 这里针对位置 设置一个随机位置 // 随机数使用 arc4random_uniform 是用于生成随机数的函数 label.frame...设置 frame 属性 , 主要是设置 位置 和 大小 , 这里针对位置 设置一个随机位置 // 随机数使用 arc4random_uniform 是用于生成随机数的函数 label.frame...子控件 , 如果 父控件 也是这个 Tag , 那么优先获取自己 ; 5.frame 属性 : 定义控件的位置 和 尺寸 ; 6.transform 属性 : 改变 位置 , 大小 , 旋转角度 属性...数组 | ② 设置动画参数 UIImage数组 时长 重复次数 | ③ 启动动画 ) UIImageView 动画 执行流程 : 1.首先判断 动画 是否在执行 : 动画执行 操作 会覆盖 上一次的

    4K40

    探讨iOS 图片解压缩到渲染过程

    二.图片加载的工作流程 假设我们使用 +imageWithContentsOfFile: 方法从磁盘中加载一张图片,这个时候的图片并没有解压缩; 然后将生成的 UIImage 赋值给 UIImageView...; 接着一个隐式的 CATransaction 捕获到了 UIImageView 图层树的变化; 在主线程的下一个 runloop 到来时,Core Animation 提交了这个隐式的 transaction...; 将压缩的图片数据解码成未压缩的位图形式,这是一个非常耗时的 CPU 操作; 最后 Core Animation 中CALayer使用未压缩的位图数据渲染 UIImageView 的图层。...我们在应用中经常用到的 JPEG 和 PNG 图片就是位图 大家可以尝试 UIImage *image = [UIImage imageNamed:@"text.png"]; CFDataRef rawData...;如果 为 NULL ,那么系统就会为我们自动分配和释放所需的内存,所以一般指定 NULL 即可; width 和height :位图的宽度和高度,分别赋值为图片的像素宽度和像素高度即可; bitsPerComponent

    1.7K40

    iOS的GIF动画效果实现

    (2)将NSData作为ImageIO模块的输入。 (3)获取ImageIO的输出数据:UIImage。 (4)将获取到的UIImage数据存储为JPG或者PNG格式保存到本地。...-> CGImage以下为UIImage类的方法,这个方法用于实例化UIImage实例对象。...该方法有三个参数,参数1为需要构建UIImage的内容,注意这里的内容是CGImage类型,参数2为手机物理像素与手机和手机显示分辨率的换算系数,参数3表明构建的UIImage的图像方向。...第6行实例化一个UIImageView实例对象。第7行和第8行设置UIImageView实例对象的frame位置属性以及图片的拉伸方式,这里设置为居中显示。...第10行将初始化加载的67张图片添加到UIImageView实例的animationImages上,相当于设置UIImageView的内容。第11行设置UIImageView图片动画播放周期。

    1.3K20

    iOS 图片加载框架SDWebImage详解

    SDWebImage 提供了 UIImageView、UIButton 、MKAnnotationView 的图片下载分类,只要一行代码就可以实现图片异步下载和缓存功能。...SDWebImage 特点 提供 UIImageView, UIButton, MKAnnotationView 的分类,用来显示网络图片,以及缓存管理 异步下载图片 异步缓存(内存+磁盘),并且自动管理缓存有效性...UITableView 中使用 UIImageView+WebCache [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http:/...SDWebImageManager 的使用 UIImageView(WebCache) 分类的核心在于 SDWebImageManager 的下载和缓存处理,SDWebImageManager将图片下载和图片缓存组合起来了...解决方案: 自定义 UITableViewCell,重写 -layoutSubviews 方法,调整位置尺寸; 或者直接弃用 UITableViewCell 的 imageView,自己添加一个 imageView

    2.6K10

    iOS开发 - 图片的解压缩到渲染过程

    二.图片加载的工作流程 假设我们使用 +imageWithContentsOfFile: 方法从磁盘中加载一张图片,这个时候的图片并没有解压缩; 然后将生成的 UIImage 赋值给 UIImageView...; 接着一个隐式的 CATransaction 捕获到了 UIImageView 图层树的变化; 在主线程的下一个 runloop 到来时,Core Animation 提交了这个隐式的 transaction...; * 将压缩的图片数据解码成未压缩的位图形式,这是一个非常耗时的 CPU 操作; * 最后 `Core Animation` 中`CALayer`使用未压缩的位图数据渲染 `UIImageView...我们在应用中经常用到的 JPEG 和 PNG 图片就是位图 大家可以尝试 UIImage *image = [UIImage imageNamed:@"text.png"]; CFDataRef rawData...;如果 为 NULL ,那么系统就会为我们自动分配和释放所需的内存,所以一般指定 NULL 即可; width 和height :位图的宽度和高度,分别赋值为图片的像素宽度和像素高度即可; bitsPerComponent

    1.7K00
    领券