[IOS]今天开始学UI---UIImageView

iOS复习记录日记01-从搭建出IOSUI最简单的计算器,到复杂的分布式服务端开发[2020] iOS开发日记 现在是2020年3月26号. 因独立开发需要复习 以加深巩固. 我会将我复习 IOSUI开发知识 从基础到进阶 完全的记录下来. 这里会涉及到:从搭建出IOSUI最简单的计算器,到复杂的分布式服务端和微服务的独立开发.记录下来从前端到后端的全程学习和/复习的过程. 今天是第一篇日记.我会从最简单的计算器日志开始写起. --------------------------- 开发环境... 阅读详情

UIImageView的作用:UIImageView可以看作图片的专用容器,可以用来展示单个图片或者一些列图片。

当展示一系列图片的时候 可以通过设置动画时长,同时也能随时停止动画和开始动画。展示一系列图片 的动画效果就像幻灯片一样。

NS_CLASS_AVAILABLE_IOS(2_0) @interface UIImageView : UIView {
  @private
    id _storage;
}

- (instancetype)initWithImage:(UIImage *)image;
- (instancetype)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage NS_AVAILABLE_IOS(3_0);

@property(nonatomic,retain) UIImage *image;                                                     // default is nil
@property(nonatomic,retain) UIImage *highlightedImage NS_AVAILABLE_IOS(3_0);      // default is nil
@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;               // default is NO

@property(nonatomic,getter=isHighlighted) BOOL highlighted NS_AVAILABLE_IOS(3_0); // default is NO

// these allow a set of images to be animated. the array may contain multiple copies of the same

@property(nonatomic,copy) NSArray *animationImages;            // The array must contain UIImages. Setting hides the single image. default is nil
@property(nonatomic,copy) NSArray *highlightedAnimationImages NS_AVAILABLE_IOS(3_0);            // The array must contain UIImages. Setting hides the single image. default is nil

@property(nonatomic) NSTimeInterval animationDuration;         // for one cycle of images. default is number of images * 1/30th of a second (i.e. 30 fps)
@property(nonatomic) NSInteger      animationRepeatCount;      // 0 means infinite (default is 0)

// When tintColor is non-nil, any template images set on the image view will be colorized with that color.
// The tintColor is inherited through the superview hierarchy. See UIView for more information.
@property (nonatomic, retain) UIColor *tintColor NS_AVAILABLE_IOS(7_0);

- (void)startAnimating;
- (void)stopAnimating;
- (BOOL)isAnimating;

@end

可以说  UIImageView是图片的容器  里面存放着一系列的图片 苹果官方推荐图片使用的格式为png

@property(nonatomic,retain) UIImage *image;//单个图片
@property(nonatomic,retain) UIImage *highlightedImage//当UIImageView highlighted = YES的时候 将展示的图片
@property(nonatomic,copy) NSArray *animationImages; //一组图片 
@property(nonatomic,copy) NSArray *highlightedAnimationImages//当UIImageView highlighted = YES的时候 将展示的图片


如果同时设置image 属性和animationImages 属性的时 不显示 image 但是 animationImages 再重新设置为nil的时候 imaget又重新出现了

同时如果设置backgroundColor是无效的?并不能显示 哪怕一张图片都没有


UIImageView 并不能响应用户所进行的触碰等行为 是因为 userInteractionEnabled 属性默认设置为NO

如果要使其响应触碰行为 只要设置YES即可


使用UIImageView也和其他的View相同

1.创建

单图片UIImageView创建

- (instancetype)initWithImage:(UIImage *)image;
- (instancetype)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage
如果要创建多图片UIImageView只要在创建后 setAnimationImages

UIImageView 继承自UIView所以父类的初始化方式 也是支持的

比如

- (instancetype)initWithFrame:(CGRect)aRect
设置是其更之上的父类NSObject的

- (instancetype)init;


所有的UIView或者继承自UIView的View都是支持以上两种方式初始化的


现在我们创建一个能播放一组图片的UIImageView

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    UIImageView *imageView = [[UIImageView alloc] init];
    //UIImageView的 animationImages 的属性类型是 NSArray 所以我们我们传入的也是NSArray
    NSMutableArray *images = [NSMutableArray array];
    for (int i=1; i<6; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%i.png",i]];
        [images addObject:image];
    }
    [imageView setAnimationImages:images];

    imageView.frame = CGRectMake(50, 50, 200, 200);
    //指定一组图片播放完需要的时间
    [imageView setAnimationDuration:2.0f];
//  [imageView setAnimationRepeatCount:10]; 默认是不停的重复播放 如果不指定值的话

    [self.view addSubview:imageView];
    //开始播放图片
    [imageView startAnimating];



}


突然发现 需要单独做一期 关于UIView 的transform属性 和contentMode属性的介绍

该两种属性 关于 UIView的动作行为 比如缩放 旋转等转换行为 contentMode 则是关于UIView中的内容是如何摆放的问题

以上两种属性 都是UIView的 并不是属于该UIImageView特有的属性 也就是基本上所有的继承自UIView的View都是能够使用的

但是关于图片需要做的duang效果比较多  所以也就只能再下一篇讲了



that's all

thx



Everything you see on Screen is UIView.





UI -[渲染原理] -界面渲染那些事 当你被问到下面问题,你能够回答出来么? 1、app从点击屏幕到完成渲染,中间发生了什么? 2、当一个UIImageView添加到视图后,内部是如何渲染到手机上的? 3、一个tableView中有多个cell,如何避免卡顿。 今天,我们就来了解iOS中的渲染过程; 图像渲染流水线 图像渲染流程粗粒度地大概分为下面这些步骤: 上述图像渲染流水线中,除了第一部分 Application 阶段,后续主要都由 GPU 负责,为了方便后文讲解,先将 GPU 的渲染流程图展示出来: 上图就是一个三角形被渲染的过程中, 阅读详情

相关推荐

仿喜马拉雅iOS应用UI界面设计与实现

你看,从一个的滚动机制,到最后的模块化架构设计,整个链条环环相扣。没有哪一项技术是孤立存在的,它们共同编织成了我们手中的这款“会呼吸”的 App。喜马拉雅的成功,不仅仅是因为内容丰富,更是因为它懂得:好的技术应该隐身于体验之后。用户不会关心你用了多少个 Coordinator,但他们一定能感受到“为什么这个App这么顺手”。所以,下次当你在写的时候,不妨多想一步:我是在完成任务,还是在创造体验?😉本文还有配套的精品资源,点击获取。

weixin_30951515的博客 861

IOS:聊一聊UIImage几点知识

IOS:聊一聊UIImage几点知识      有一段时间没有写博客了,中间隔了个五一假,算一下差不多20天,这段时间准备组内的一个分享,所以就耽搁了,今天准备写一些UIImage方面的东西。   UIImage是IOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有CGImage,以及IOS5.0以后新增加的CIImage。今天我们主要聊一聊UIImage的三个属性: imag...

weixin_33716557的博客 296

星光、黑光、全彩夜视摄像头技术解析与实战选型指南

本文深入解析了星光、黑光、全彩与红外等主流夜视摄像头技术的工作原理与核心差异。针对不同监控场景与预算,提供了实战选型指南,帮助用户在安防项目中做出明智决策,实现夜间监控效果最大化。

weixin_29179311的博客 345

[IOS]今天开始学UI---UITextField&&UITextView

UITextField 浅析

HeapStackk的博客 470

手把手教你用LTspice仿真BUCK-BOOST电路(附波形分析)

本文详细介绍了如何使用LTspice进行BUCK-BOOST电路的仿真与波形分析,涵盖电路原理、CCM与DCM模式特性、效率优化及常见问题解决方案。通过实战案例,帮助工程师快速掌握升降压转换电路的设计与调试技巧,提升电力电子设计能力。

julia4scientist的博客 1046

Omnibox 2.11 NAS部署指南:家庭影音中枢的轻量化落地实践

家庭影音平台本质是本地化内容调度中枢,其核心在于聚合NAS媒体库、统一管理直播/IPTV/音频/视频等多源内容,并通过智能元数据匹配与硬解加速实现零门槛播放体验。技术原理上依赖Java轻量Web容器(Jetty)、SQLite嵌入式数据库双缓存架构,以及宿主机FFmpeg动态链接与HTTP/2直播代理治理能力。该方案显著降低4K播放卡顿、EPG加载失败、海报缺失等高频问题,适用于群晖、飞牛、绿联等主流NAS设备,尤其适配ARM64芯片与Realtek网卡等国产硬件生态。本文聚焦Omnibox 2.11在真实

weixin_30846347的博客 468

ios控件自定义指引

转自:http://leakswww.devdiv.com/forum.php?mod=viewthread&tid=132028 一直以来都想写点什么,做点有意义的事,从今天开始我将会把自己在这一年的学习和应用IOS开发中的学习心得和体会写出来,我将更深入的让大家理解IOS开发的方方面面,不过仍不能保证涉及所有的范围,希望我的理解可以给一些初学者一些帮助。 白天上班没有时间,而...

彬琪 的 Iphone笔记 217

论文超详细精读|万字:2s-AGCN

1. 提出了一种新的双流自适应图卷积网络(2S-AGCN)用于基于骨架的动作识别。**模型中的图的拓扑既可以统一地学习,也可以通过BP算法以端到端的方式单独学习。** 2. 提出了一种同时对**一阶和二阶信息(骨架的长度与方向)建模的双流框架**,在识别精度上有了显著的提高。 它将骨架数据的图结构参数化,并嵌入到网络中,与模型共同学习和更新。 3. 文章主要创新点有两个,一个是双流网络,另外一个是自适应。

IanYue的博客 6382

系列:iOS 开发-基础控件

之前讲了一大堆数据类型,当然我只是调了几个说说,仍然不是全部,不如时间类型NSDate……这里我也不举例子了,数据类型的学习大致都是一样的,我们现在可以不究其原理和实现过程,我们现在才刚刚开始学习,那么我们先学会怎么用,等我们用熟悉了,我们再去做进一步的探究. 好了,不说废话了,今天开始,讲一讲iOS开发中除了数据类型之外,可以让用户看到的那些东西,基础空间,比如按钮,比如图

spicyShrimp的博客 1768

东华大学oj系统 39 最大乘积

39 最大乘积 作者: Turbo时间限制: 1S章节: 深度优先搜索 问题描述 : 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入说明 : 第一行一个数表示数据组数   每组输入数据共2行:   第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,   第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。 输出说明 : 每组数据输出1行,为最大的乘积。 输入范例 : 1 5 5 1 2 3 4 2 输出范例 : 48 注:难

weixin_50336369的博客 527

机器学习系列(1)_逻辑回归初步

1、总述 逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。 2、由来     要说逻辑回归,我们得追溯到线性回归,想必大家对线性回归都有一定的了解,即对于多维空间中存在的样本点,我们用特征的线性组合去拟合空间中点的分布和轨迹。如下图所示:     线性回归能对连续值结果进行预测,

寒小阳 13万+

UI学习回想日记

1.    记得刚开始学习了UI的三个控件  lable ,textfilde,button,貌似没什么难的,就是各个属性的设置,再就是添加一个响应时间,后来就做了一个小程序------咚咚牌计算器。 2  .后来就学习了UI application的生命周期,程序启动,将要进入后台,已经进入后台,将要进入前台,已经进入后台,第一个阶段有个rootcontroller的选择。 再就是viewc

温柔一刀的专栏 1071

灰质-白质组织对比(Gray-white matter tissue contrast,GWC)计算以及可视化

GWC是深层灰质与浅表白质(superficial white matter,SWM)之间T1加权信号强度的比值,已知髓鞘中的胆固醇是T1加权信号强度的主要影响因素,因此GWC大致反映了大脑皮层和浅表白质之间的髓鞘化差异。GWC代表灰白质交界处的模糊程度,较低的GWC表明灰质和白质交界处更相似和更模糊;较高的GWC表明灰白质分界更加清楚。据之前的研究报道,局灶性皮质发育不良、颞叶癫痫、帕金森病、强迫症、精神分裂症和自闭症谱系障碍中存在灰白质交界区GWC异常增高或降低。 灰质信号强度和白质信号强度采集的示意图

xxx 732

十大开源Swift库开始你的下一个iOS项目

随着Swift变得更加成熟,开源Swift库变得越来越多样化并且数量迅速增长。在本文中,我策划了可用于引导您的下一个iOS项目的最佳开源Swift库。它们将使您的代码库更加强大,性能更高,并允许您更快地发布iOS项目。 事实上,在我的应用中,我集成了几乎所有这些开源库,如SnapKit,MapKit,ChartKit等。基于我的移动开发经验,今天我将介绍最知名和最常用的iOS库,在M...

weixin_30845171的博客 237

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

iOS中使用GCD/多线程:在下载的过程中显示动画

GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目,如果你是一个追求软件效率的开发人员,这门技术你一定要有所研究。 今天要介绍的是如何从网上下载大量的文件, 方法有许多,传通的就是用多线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些方法,而是

彳亍而行的专栏 3269

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于 UIImageView

为什么80%的码农都做不了架构师?>>> ...

weixin_33905756的博客 66

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

iOS 中播放gif图片

今天突然想到自己工程里面要用到这块,所以自己也整理了一下,留着备用,自己从网上下载了张gif的图片,拿来测试下   方法一:    //设置位置和大小  把图片放在webView上播放     CGRect frame=CGRectMake(50, 50, 60,60);    frame.size=[UIImage imageNamed:@"animation.gif"]

li唱的专栏 1037

提效90%?用AI一键将 Objective-C UI 转换为 Swift,太香了!

可以看见借助AI原本需要耗费大量时间和精力的重复性工作,现在只需一个合适的 prompt,几分钟内就能完成大部分内容,甚至还能带来结构更清晰、风格更现代的代码产出。当然,AI 并不能代替我们思考,但它已经可以成为我们开发过程中的“副驾驶”——

weixin_39339407的博客 1315

iOS中GCD的魔力

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px} span.s1 {font: 12.0px 'Hiragino Kaku Gothic ProN'} GCD(Grand Central Dispatch)是一个大的主题

Care iOS技术团队 1万+

ios 九宫格图片的展示实现

今天分享的是多图添加的代码,像微博和微信那些9图显示有一个问题就是每个微博或朋友圈的图片显示数量是不定的,这样我们就不能一开始就写好imageView的位置和数量,要先知道有多少个图片,再根据图片的数量去init imageView,实现效果大概如下 代码如下 - (void)addImages{ NSArray*imageArray = [[NSArrayalloc]init];//储存图片的数组 NSIntegerimageCount =0;//已添加图片 //图片的宽高

faker1111112的博客 987

iOS学习笔记46——图片异步加载之SDWebImage

在开发中经常会遇到列表加载的功能,其中大部分都包括图片列表加载,但移动设备本身内存有限,而大量图片加载又很耗内存。今天主要就介绍一个第三方图片异步加载库SDWebImage,Github地址为:https://github.com/rs/SDWebImage,这个库主要实现了为UIImageView添加一个类别方法,让使用者使用图片异步加载就好像直接为UIImageView设置image一样,使用

qianxun_ios的博客 416

iOS开发系列--IOS程序开发概览

iOS开发系列--IOS程序开发概览   概览 终于到了真正接触IOS 应用程序的时刻了,之前我们花了很多时间去讨论C语言、ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序。 但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人 担忧,所以还是希望大家...

stephen830 147

iOS UITableView滚动头图 拉伸放大效果 (头部弹性效果) 增加iOS11支持 附有demo

今天修改日期为2017年11月25日 两个月前做了iOS11的bug修复,才对博客进行更新,见谅。 在iOS11上需要注意两个问题 1.使用UIScrollview,UITableView,UIWebView等滚动UI控件的页面造成的页面错位,会上面空白20像素(不用iPhoneX做适配情况下) 解决: //防止顶端留出状态栏高度空白 if (@available(iOS...

weixin_33985679的博客 1274

iOS 中 GCD 的魔力

本文转自 http://blog.youkuaiyun.com/favormm/archive/2011/05/29/6453260.aspx     GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目,如果你是一个追求软件效率的开发人员,这门技术你一定要有所研究。     今天要介绍的是如何从网上下载大量的文件, 方法有

559
上一篇: [IOS]今天开始学UI---UIDatePicker
下一篇: [IOS]今天开始学UI---UIIView的transform和contentMode属性
HeapStackk
博客等级 码龄12年 11粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值