利用UICollectionView实现"新特性"功能demo

在UIScrollView、UICollectionView和UITableView中添加UIRefreshControl实现下拉刷新 Apple在iOS 6中添加了UIRefreshControl,但只能在UITableViewController中使用,不能在UIScrollView和UICollectionView中使用。 iOS 10 新特性 从iOS 10开始,UIScrollView增加了一个refreshControl属性,用于把配置好的UIRefreshControl赋值给该属性,这样UIScrollView就有了下拉刷新功能。和之前在UITableViewController中使用一样,不需要设置UIRefreshCont 阅读详情
1.手动创建窗口,启动。判断是否有新版本,展示新特性界面
//
//  AppDelegate.m


#import "AppDelegate.h"
#import "NewFeatureViewController.h"

#define VersionKey @"version"
@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    
    // 创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor redColor];
    
    // 判断有木有最新的版本号
    // 从info.plist获取软件版本号
    NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleInfoDictionaryVersion"];
    NSString *oldVersion = [[NSUserDefaults standardUserDefaults] objectForKey:VersionKey];
    
    UIViewController *rootVC = nil;
    if ([currentVersion isEqualToString:oldVersion]) {
        // 没有新版本
        rootVC = [[UITabBarController alloc] init];
    }else{
         rootVC = [[NewFeatureViewController alloc] init];
        
        [[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:VersionKey];
    }
    
    // 设置窗口的根控制器
    self.window.rootViewController = rootVC;
    // 显示窗口
    [self.window makeKeyAndVisible];
    
    
    return YES;
}


@end

2.新特性

//
//  NewFeatureViewController.h

#import <UIKit/UIKit.h>

@interface NewFeatureViewController : UICollectionViewController

@end
//
//  NewFeatureViewController.m

#import "NewFeatureViewController.h"
#import "NewFeatureCell.h"

#define ScreenBounds [UIScreen mainScreen].bounds
@interface NewFeatureViewController ()

@end

@implementation NewFeatureViewController

static NSString * const reuseIdentifier = @"Cell";

- (instancetype)init
{
    // 流水布局对象
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    // 设置cell尺寸
    layout.itemSize = CGSizeMake(ScreenBounds.size.width, ScreenBounds.size.height);
    // cell间距
    layout.minimumLineSpacing = 0;
    layout.minimumInteritemSpacing = 0;
    
    // 滚动的方向
    layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    
    return [super initWithCollectionViewLayout:layout];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = NO;
    
    // 弹簧效果
    self.collectionView.bounces = NO;
    // 滚动条
    self.collectionView.showsHorizontalScrollIndicator = NO;
    // 分页
    self.collectionView.pagingEnabled = YES;
    
    
    // 注册cell
    [self.collectionView registerClass:[NewFeatureCell class] forCellWithReuseIdentifier:reuseIdentifier];
}

#pragma mark <UICollectionViewDataSource>

// 有多少组
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}

// 返回第section组有多少个cell
#define Pages 4
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return Pages;
}

/**
 *  返回cell
 */
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    NewFeatureCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
    
    cell.image = [UIImage imageNamed:[NSString stringWithFormat:@"guide%ldBackground",indexPath.item + 1]];
    
    // 告诉cell什么时候是最后一个
    [cell setupIndexPath:indexPath count:Pages];
    
    return cell;
}

@end
//
//  NewFeatureCell.h


#import <UIKit/UIKit.h>

@interface NewFeatureCell : UICollectionViewCell

@property(nonatomic,strong)UIImage *image;

- (void)setupIndexPath:(NSIndexPath *)indexPath count:(NSInteger)pagesCount;

@end
//
//  NewFeatureCell.m

#import "NewFeatureCell.h"

#define ScreenBounds [UIScreen mainScreen].bounds

@interface NewFeatureCell()

@property(nonatomic,weak)UIImageView *imageView;
@property(nonatomic,weak)UIButton *startButton;

@end

@implementation NewFeatureCell

- (UIButton *)startButton
{
    if (_startButton == nil) {
        
        UIButton *btn = [[UIButton alloc] init];
        [btn setBackgroundImage:[UIImage imageNamed:@"guideStart"] forState:UIControlStateNormal];
        [btn sizeToFit];
        btn.center = CGPointMake(self.bounds.size.width * 0.5, self.bounds.size.height * 0.9);
        [btn addTarget:self action:@selector(startButtonClicked) forControlEvents:UIControlEventTouchUpInside];
        [self.contentView addSubview:btn];
       
        _startButton = btn;
    }
    return _startButton;
}

/**
 *  点击了startButton按钮
 */
- (void)startButtonClicked
{
    // 切换根控制器
    self.window.rootViewController = [[UITabBarController alloc] init];
}


- (UIImageView *)imageView
{
    if (_imageView == nil) {
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.bounds];
        [self.contentView addSubview:imageView];
        
       _imageView = imageView;
    } 
    return _imageView;
}

- (void)setImage:(UIImage *)image
{
    _image = image;
    
    self.imageView.image = image;
}

- (void)setupIndexPath:(NSIndexPath *)indexPath count:(NSInteger)pagesCount
{
    if (indexPath.row == pagesCount - 1) {
        // 最后一个cell
        // 添加跳转按钮
        self.startButton.hidden = NO;
    }else{
        self.startButton.hidden = YES;
    }
}

@end





均匀分布产生高斯分布 均匀分布产生高斯分布 文章目录均匀分布产生高斯分布简介方法和证明代码效果引用 简介 方法和证明 代码 效果 引用 阅读详情

相关推荐

TPAMI审稿人关注什么

写在开头:被tpami接收大概是每个cs er最开心的事情吧!今天阅读TPAMI的文章时,发现有扩刊的文章,也有不是扩刊的文章,那么这两类文章哪个更容易被接收呢?

carlous0的专栏 1685

UIScrollView配置、二次网络访问、父子视图透明度

1.网络请求加载     尽量不要在viewWillAppear的时候就发送请求 这样会导致APP每次出现这个页面都需要加载数据,可以通过一个参数来传递判断是否需要在页面出现的时候来加载数据 2.当正在发送网络请求时(二次网络请求)     可以把 当前显示的页面设置为 不可交互的页面 当请求结束在允许交互,可以有效避免二次网络请求程序崩掉 3.设置父视图的透明度会影响子视图的透明度 可以

iOSzxg的博客 351

后仿之 SDF优先级和相关概念

综上:在后仿中,工具(vcs)看起来对于negative interconnect的处理如下:a. 查看此negative INTERCONNECT语句所对应的destination cell中是否有PORT语句:b. 如果PORT delay的值大于等于INTERCONNECT的绝对值,就从PORT中消耗掉对应的负值。c. 如果PORT delay不够用,就查看destination cell中是否有IOPATH或DEVICEm有IOPATH或DEVICE,并且够用(任意一种够用就行),就消耗掉。

qq_24434431的博客 1108

CollectionView快速创建

#pragma 配置文件 [self.CollectioinView registerClass:[SHStoreCollectionCell class] forCellWithReuseIdentifier:@"storeCollectionCell"]; - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView ...

公会驻地 402

GIS国土工具实战:从地类分析到坐标转换,一站式解决项目难题

本文详细介绍了GIS国土工具在国土整治项目中的高效应用,涵盖地类分析、坐标转换、影像加载等核心功能。通过实战案例展示如何利用该工具快速处理shp与txt文件转换、智能比对三调二调数据,以及优化影像加载策略,显著提升项目效率。特别适合需要处理复杂国土数据的专业人员使用。

weixin_28732953的博客 335

Globus 数据下载

Globus 大数据下载流程~

weixin_43978558的博客 6629

二、通过纯代码创建的UICollectionView的简单使用

之前写了一个Xib创建UiCollectionView的简单使用的demo,现在写个用纯代码写的,原理其实差不多,只是那个Cell之前是用XIb现在用一个继承UiColelctionViewCell的类代替,如下所示: 1.首先创建一个CollectionCell的类继承UIColelctionViewCell @interface CollectionCell : UICollect

一只小菜鸟 2812

SpringBoot Redis入门(一)——redis、Lettuce、Redisson使用

Lettuce是SpringBoot自带的Redis客户端,性能比Redis要好, 是线程安全的,支持同步编程,异步编程,响应式编程,自动重新连接,主从模式,集群模块,哨兵模式Redisson 是一个在 Redis 的功能基础上实现的 Java 驻内存数据网格客户端。实现了分布式和可扩展的 Java 数据结构,提供很多分布式相关操作服务,例如分布式锁,分布式集合,可通过 Redis 支持延迟队列。

朗朗的博客 3833

iOS - UICollectionView 长按拖拽单元格

一、先上gif效果图,DEMO链接:https://gitee.com/xudongxiang/DragDropCollectionView.git 二、代码实现细节 初始化collectionView,以及遵守UICollectionViewDelegate、UICollectionViewDataSource ,并且注册cell等一波常规操作 UICollectionViewFl...

qq_27501365的博客 6774

异次元发卡最新漏洞0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入(user、admin均存在)。其中,user处有过滤,admin无。 将恶意脚本插入后,管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后,会新增一个管理员用户,进而获得权限。鉴于漏洞还没有泛滥,而且很多站都有漏洞。EXP暂时不公开。需要学习可以加入知识星球

白昼小丑的博客 4593

Unity 热更 之 【HybirdCLR】+【YooAsset】 [安卓 Android端] [代码 + 资源热更] 功能的 简单实现演示

Unity热更有很多方案,各种lua热更,ILRuntime等,这里介绍的是YooAsset+HybridCLR的热更方案,HybridCLR负责更新c#代码,YooAsset负责更新资源。HybridCLR是一种创新的解决方案,专为 Unity 游戏开发中的热更新需求设计。它通过结合解释执行和 Ahead-of-Time (AOT) 编译技术,为跨平台的游戏开发提供了一种高效的热更新机制。原生C#热更新体验,开发工作流与传统Unity C#开发几乎相同,零学习和使用成本。

仙魁XAN 3866

UICollectionView新特性

针对IOS6提出的全新特性UICollectionView做了一个实际的使用,有很多地方还是很有意义的,定制化貌似更加的灵活了,这样对于大量的自定义来说更是“万事俱备,东风已来”矣。在Apple Developer 中心也有Demo,那个Demo也是很有意思的,文章最后会给出下载地址。 一、战果展示,呵呵~~ 实现了一个圆形的UICollectionView的使用,当触摸非

LRtianzhilan的专栏 884

前言:关于作者吴秋生博士与此书简介

博士现为田纳西大学,诺克斯维尔分校,地理系的副教授。他的研究兴趣包括地理信息科学(GIS)、遥感和环境建模。更具体地说,对应用地理空间大数据、机器学习和云计算(例如,谷歌地球引擎、微软行星计算机)来研究环境变化,特别是地表水和湿地淹没动态。吴博士是开放科学和可重复研究的倡导者。他开发了几个用于高级地理空间分析的开源软件包(例如,吴博士还在YouTube上发布了数百个有关GIS和地图绘制的视频。更多有关他的开源项目信息,请访问GitHub(查看他的YouTube频道。.....................

韩天放 6089

UICollectionView 基本使用(配合Flickr API)

在iOS6的新特性中,UICollectionView是最吸引人的新控件之一。有了这个,就不需要再去git上面找各种GridView的源码,也不需要自己用UITableView去模拟一个了。 本文主要通过一个demo介绍UICollectionView的基本使用。 首先看下demo完成后的截图 demo的主要组成部分就是上面的UITextField和下面的UICollectionVi

Kay's space 6968

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

UICollectionView可移动item

在iOS9之后,UICollectionView貌似添加一了个新特性,可以摁住某个item,然后拖拽移动,类似UITableView的cell可以编辑移动位置一样。

linkjd的博客 1175

深度学习工具包 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")

iOS6 新特性集合 UICollectionView

UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。 使用UIC...

chishi2051的博客 106

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

iOS App引导页功能实现

一、写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录。因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑。pod spec配置遇到的坑不在这里写,后面会单独写一点,但是内容不会太多。一是方便别人,二是方便自己。 第一次来发帖,写的不对的地方,请大神指出。我一定好好的努力修改并向大家学习,但是还是不太喜欢一惯的喷...

weixin_30481087的博客 245

iOS 9的新特性之一——实现给collectionView上的cell进行重新排序的功能

iOS9的collectionView 新增加的方法,可以实现给collectionView上的cell进行重新排序的功能,实现之后还是蛮有意思的。   在以下的demo中将配合长按手势来进行。 #import "ViewController.h" #import "MainCell.h" @interface ViewController

iOSbird的博客 2003

Xcode7 collectionView的编辑新特性

Xcode7,OS9,collectionView,移动过程

Reikomiao的博客 1777

UICollectionView 和 UIKit Dynamics

UIKit Dynamics 是 iOS 7 中基于物理动画引擎的一个新功能–它被特别设计使其能很好地与 collection views 配合工作,而后者是在 iOS 6 中才被引入的新特性。接下来,我们要好好看看如何将这两个特性结合在一起。 这篇文章将讨论两个结合使用 UIkit Dynamics 和 collection view 的例子。第一个例子展示了如何去实现像 iOS 7 里信息

onebyte的专栏 929

UICollectionView + UIKit Dynamics

UIKit Dynamics 是 iOS 7 中基于物理动画引擎的一个新功能--它被特别设计使其能很好地与 collection views 配合工作,而后者是在 iOS 6 中才被引入的新特性。接下来,我们要好好看看如何将这两个特性结合在一起。  这篇文章将讨论两个结合使用 UIkit Dynamics 和 collection view 的例子。第一个例子展示了如何去实现像 iOS 7

zry754331875的博客 385

storyboard搭建项目_快速用Storyboard创建一个UICollectionView

今天是周六,用了一天的时间自己尝试做一个UICollectionView。完全是因为昨天看了一整天的UICollectionView的新特性,看得是自我感觉极好,感觉真简单,准备今天用半天时间完成两个Demo。结果还是印证了那句话:自己动手做才知道没那么简单。现记录。先看效果:1、新建一个项目新建一个Single View Application:然后把Storyboard中的默认的ViewCon...

weixin_39796116的博客 417

IOS6新特性集合视图<UICollectionView>CircleLayout实践

针对IOS6提出的全新特性UICollectionView做了一个实际的使用,有很多地方还是很有意义的,定制化貌似更加的灵活了,这样对于大量的自定义来说更是“万事俱备,东风已来”矣。在Apple Developer 中心也有Demo,那个Demo也是很有意思的,文章最后会给出下载地址。 一、战果展示,呵呵~~ 实现了一个圆形的UICollectionView的使用,当触摸非圆周的部分时

2294

IOS6新特性之集合视图<UICollectionView>介绍

说句老实话这个特性在IOS6之前有一个PSCollectionView,相信有很多人都见识过,使用过吧。IOS6中Apple中新增加了这样的一个特性,让开发者更加的方便自由的使用,不过我们还是需要详细的学习一下这个心的UI的原理和特质。 首先,CollectionView包含以下几个部分: 1、View元素部分 2、数据模型和交互部分 3、contents显示部分 4、View样式部分

3540

iOS<咸鱼APP>新特性界面-视频动画

前言 昨天晚上一个简友简信我,问我咸鱼最新版的新特性动画有没有什么思路. 原谅 我都没怎么用过咸鱼, 再加上已经四点多了,就跟他胡诌了一下思路. 今天广州一如既往的是大雨倾盆, 想起昨晚的事, 就下载了一下咸鱼的最新版, 看了一下新特性, 感觉还是蛮炫酷的. 脑中想了几组动画, 准备自己写一下, 随后拿到了咸鱼的所有资源, 然后我就发现, 我想多了, 他们的做法更方便... 效果图 咸

努力,可能成功!放弃,注定失败! 1237
上一篇: 第三方图表库UUChart的简单使用
下一篇: [Magento SQL] 返回sku,price,specialPrice。排除可配置产品和已下架产品
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值