UIScrollerView

Swift 使用UIScrollerView 实现装扮功能(基础) 装扮功能在游戏中比较常见,近些年有些产品也开始将这个功能植入到App中,这个功能呢也确实是满足了一部分追求个性化的用户。接下来看看我实现的一个简单的装扮界面吧!如下图,这个猫猫放到什么位置合适呢?哈哈这个没有标准答案,你喜欢搁哪就搁哪吧!分析功能实现支持横向滚动的背景板道具拖拽移动调整摆放的位置监听道具拖到屏幕边缘然后丝滑地滚动背景板装扮功能的核心功能点差不多就是这些啦!那么你们的App有计划加入装扮功能吗? 阅读详情
UIScrollView的属性总结
属性作用
CGPoint contentOffSet监控目前滚动的位置
CGSize contentSize滚动范围的大小
UIEdgeInsets contentInset视图在scrollView中的位置
id<UIScrollerViewDelegate>
delegate
设置协议
BOOL directionalLockEnabled指定控件是否只能在一个方向上滚动
BOOL bounces控制控件遇到边框是否反弹
BOOL alwaysBounceVertical控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal控制水平方向遇到边框是否反弹
BOOL pagingEnabled控制控件是否整页翻动
BOOL scrollEnabled控制控件是否能滚动
BOOL showsHorizontalScrollIndicator控制是否显示水平方向的滚动条
BOOL
showsVerticalScrollIndicator
控制是否显示垂直方向的滚动条
UIEdgeInsets scrollIndicatorInsets指定滚动条在scrollerView中的位置
UIScrollViewIndicatorStyle
indicatorStyle
设定滚动条的样式
float decelerationRate改变scrollerView的减速点位置
BOOL tracking监控当前目标是否正在被跟踪
BOOL dragging监控当前目标是否正在被拖拽
BOOL decelerating监控当前目标是否正在减速
BOOL delaysContentTouches控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches控制控件是否接触取消touch的事件
float minimumZoomScale缩小的最小比例
float maximumZoomScale放大的最大比例
float zoomScale设置变化比例
BOOL bouncesZoom控制缩放的时候是否会反弹
BOOL zooming判断控件的大小是否正在改变
BOOL zoomBouncing判断是否正在进行缩放反弹
BOOL scrollsToTop控制控件滚动到顶部

这里把UIScrollView的几个要点总结下:

从你的手指touch屏幕开始,scrollView开始一个timer,如果:

1.  150ms内如果你的手指没有任何动作,消息就会传给subView。

2.  150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。

3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。

观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。

 

delaysContentTouches的作用:

这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。

 

cancelsTouches的作用:

这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生



contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320,480) contentSize = (320,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。


contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0,480),也就是y偏移了480

 

contentInset是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset= (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示


 

另外UITableView是UIScrollView的子类,它们在上述属性又有所不同,tabelview的contentsize是由它的下列方法共同实现的

- (NSInteger)numberOfSections;

- (NSInteger)numberOfRowsInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath;

- (CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section;

- (CGFloat)tableView:(UITableView *)tableViewheightForFooterInSection:(NSInteger)section;

它会自动计算所有的高度和来做为它的contentsize的height.

 

例如你在delegate方法

- (NSInteger)tableView:(UITableView *)tableViewnumberOfRowsInSection:(NSInteger)section {

    return100;

}

那么你的tabelview的contentsize就是(320, 4400)

posted @ 2011-10-13 17:36 zcbbin 阅读(194)评论(2)  编辑

UIScrollView原理   

scroll  view  原理
//作者:禚来强 iphone开发q*****:79190809 邮箱: zhuolaiqiang@gmail.com转帖请保留
demo 可以到我的博客 http://blog.youkuaiyun.com/diyagoanyhacker/article/list/10
在滚动过程当中,其实是在修改原点坐标

当手指触摸后, scroll view会暂时拦截触摸 事件,使用一个
计时器,假如在计时器到点后,没有发生手指移动事件,
那么,scroll view发送tracking events到被点击的subview
假如在计时器到点前,发生了移动事件,那么 scroll view 取消tracking
自己发生滚动

子类可以重载touchesShouldBegin:withEvent:inContentView:决定自己是否接收touch事件
pagingEnabled当值是YES,会 自动滚动到subview的边界,默认是NO
touchesShouldCancelInCon tentView: 开始发送trackingmessages消息给subview的时候
调用这个方法,决定是否发送trackingmessages消息到subview,假如返回NO,发送,YES则不发送
假如 canCancelContentTouches属性是NO,则不调用这个方法
来影响如何处理滚动手势

scroll view还处理缩放和平移手势
要实现缩放和平移,必须实现委托viewForZoomingInScrollVi ew:
scrollViewDidEndZooming:withView:atScale:
两个方法,另外maximumZoomScale和minimumZoomScale两个属性要不一样 

几个属性
tracking
当touch后还没有拖动的时候,值是YES,否则NO


zoomBouncing
当内容放大到最大或者最小的时候,值是YES,否则NO


zooming
当正在缩放的时候,值是YES,否则NO

decelerating

当滚动后,手指放开,但是还在继续滚动中,这个时候是 YES,其他是NO

decelerationRate

设置手指放开后的减速率


maximumZoomScale
一个浮点数,表示能放最大的倍数


minimumZoomScale 
一个浮点数,表示能缩最小的倍数


pagingEnabled
当值是YES,会自动滚动到subview的边界,默认是NO


scrollEnabled
决定是否可以滚动

delaysContentTouches

是个布尔值,当值是YES的时候,用户触碰开始,scrollview要延迟一会,看看是否用户有意图滚动,假如滚动了,那么捕捉touch-down事件,否则就不捕捉, 假如值是NO,当用户触碰,scroll view会立即触发touchesShouldBegin:withEvent:inContentView:,默认是YES

canCancelContentTouches
当值是YES的时候,用户触碰后,然后在一定时间内没有移动, scrollView发送trackingevents,然后用户移动手指足够长度触发滚动事件,这个时候,scrollView发送了touchesCancelled:withEvent:到subview,然后scroView开始滚动
假如值是NO,scrollView发送trackingevents后,就算用户移动手指,scrollView也不会滚动

contentSize
里面内容的大小,也就是可以滚动的大小,默认是0,没有滚动效果。

showsHorizontalScrollInd icator
滚动时,是否 显示水平滚动条

showsVerticalScrollIndic ator
滚动时,是否显示垂直滚动条

bounces
默认是yes,就是滚动超过边界,会反弹有反弹回来的效果,假如是 NO,那么滚动到达边界,那么会连忙停止

bouncesZoom
和bounces类似,区别在于,这个效果反映在缩放上面,假如缩放超过最大缩放,那么会反弹效果,假如是NO,则到达最大或者最小的时候,立即停止

directionalLockEnabled
默认是NO, 可以在垂直和水平方向同时运动, 当值是YES, 假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向的滚动,假如一开始是对角方向滚动,则不会禁止某个方向

indicatorStyle
滚动条的样式,基本只是设置颜色,总共3个颜色,默认,黑色的,白色的

scrollIndicatorInsets
设置滚动条的位置







属性
作用
CGPoint contentOffSet
监控目前滚动的位置
CGSize contentSize
滚动范围的大小
UIEdgeInsets contentInset
视图在scrollView中的位置
id<UIScrollerViewDelegate>
delegate
设置协议
BOOL directionalLockEnabled
指定控件是否只能在一个方向上滚动
BOOL bounces
控制控件遇到边框是否反弹
BOOL alwaysBounceVertical
控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal
控制水平方向遇到边框是否反弹
BOOL pagingEnabled
控制控件是否整页翻动
BOOL scrollEnabled
控制控件是否能滚动
BOOL showsHorizontalScrollIndicator
控制是否显示水平方向的滚动条
BOOL
showsVerticalScrollIndicator
控制是否显示垂直方向的滚动条
UIEdgeInsets scrollIndicatorInsets
指定滚动条在scrollerView中的位置
UIScrollViewIndicatorStyle
indicatorStyle
设定滚动条的样式
float decelerationRate
改变scrollerView的减速点位置
BOOL tracking
监控当前目标是否正在被跟踪
BOOL dragging
监控当前目标是否正在被拖拽
BOOL decelerating
监控当前目标是否正在减速
BOOL delaysContentTouches
控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches
控制控件是否接触取消touch的事件
float minimumZoomScale
缩小的最小比例
float maximumZoomScale
放大的最大比例
float zoomScale
设置变化比例
BOOL bouncesZoom
控制缩放的时候是否会反弹
BOOL zooming
判断控件的大小是否正在改变
BOOL zoomBouncing
判断是否正在进行缩放反弹
BOOL scrollsToTop
控制控件滚动到顶部

Swift 使用UIScrollerView 实现装扮功能(拓展) 回顾上一篇,我们实现了装扮的基础功能,可以拖拽移动道具和监听道具拖到屏幕边缘然后滚动背景板。拖动手势的触发范围目前是等于道具的范围,可以改成全屏范围设置道具可以拖动的最大范围先看看优化后的效果:为了方便观察效果,我加啦一个编辑状态,如图鼠标的位置就是我的触摸点,现在全屏都可以响应拖动手势,还限制啦道具可拖动的最大范围。拓展篇更贴近项目的实际应用场景,希望对小伙伴们有帮助。祝大家在新的一年里,龙马精神,万事如意! 阅读详情

相关推荐

大模型微调框架之TRL

近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。

和大家一起涨芝士 903

小程序scroll-view组件上拉加载时触底会多次接口,出现重复数据

小程序scroll-view组件上拉加载时触底会多次接口,出现重复数据

m0_58661018的博客 1688

ComfyUI节点流实战:用Wan2.1制作电商短视频全流程(附人物/商品模板)

本文提供了一份详尽的ComfyUI实战教程,指导用户如何利用通义万相Wan2.1图生视频模型,高效制作适用于抖音等平台的电商短视频。内容涵盖从环境部署、核心工作流搭建,到针对服装、3C数码等品类的高级提示词模板与参数调优,旨在帮助电商从业者快速生成高质量、高保真商品展示视频,显著提升内容生产效率。

potato的博客 1279

微信小程序组件scroll-view滚动到底部多次触发加载如何解决?

在 iOS 真机上,scroll-view 滚动时会多次触发 scrolltolower 事件的问题,可以设置一个“加载标识”(如 DisableTrigger)来避免重复请求下一页数据。在 onreachBottom 方法中,判断 DisableTrigger 是否为 true,如果是,则执行下一页数据的加载,否则不做任何操作。在 init()方法中,在请求数据前将 DisableTrigger 设置为 false,表示当前正在加载数据。

超人不会飞 3107

HDFView安装及使用教程

简介:直接用记事本打开hdf5文件的话,是一团乱码。HDFView是用来查看hdf5文件的软件,可以免费使用,好多人都有闪退的情况,这是因为没有添加环境变量。

qq_43722079的博客 7万+

【数据分析与挖掘实战】金融风控之贷款违约预测详解1(有代码和数据集)

金融风控一.题目理解1.1.题目概况1.2数据概况1.3预测指标二.数据来源三.查看数据四.分类指标计算示例4.1混淆矩阵4.2准确度4.3precision(精确度),recall(召回率),f1-score4.4P-R曲线4.5ROC曲线4.6AUC曲线4.7KS值五.数据分析5.1基本信息5.2查看数据集中特征缺失值,唯一值等5.3查看特征的数值类型有哪些,对象类型有哪些5.3.1数值连续型变量分析5.3.2非数值类别型变量分析5.3.3总结:5.4变量分布可视化5.4.1单一变量分布可视化 更新中~

m0_49263811的博客 1万+

微信小程序的 scroll-view 上拉加载数据重复

微信小程序的 scroll-view 上拉加载更多的BUG(数据会多加载,甚至有重复数据)。 问题描述:上拉一次,会多次触发触底函数 onReachBottom();换成自定义加载更多函数, 例如 loadMore(), 问题依旧存在。 生产环境:调试基础库 目前最新版本1.9.94 依旧存在这个问题。 解决方法:加状态控制变量,限制 触底函数/加载更多函数 的触发条件。 页面上拉加载更多...

武当山道士的博客 7176

Autoware1.14-摄像头目标检测YOLO-V3

在Autoware1.14中部署YOLOV3

weixin_43687753的博客 3138

用uniapp重写小程序问题汇总

主要问题 bug: 通过ref调用组件方法时,发现使用的是上一次的数据。 原因:微信小程序可以在修改组件的properties的传值之后、立即调用组件方法; uniapp在修改组件prop的传值之后,需要在this.$nextTick中调用组件方法。 但是在百度小程序里,即使有this.$nextTick依然没有解决这个问题,于是又追加了一个setTimeout。 Error: [TMA][WARN][RUNTIME] Page route 错误 +0ms switchTab before pages a

大众美男典范 2314

ESP32开发板使用Arduino实现变成蓝牙鼠标教程

通过这个教程,你可以轻松将ESP32开发板变成蓝牙鼠标。如果你在使用过程中遇到任何问题,或者库没有正常工作,不妨下载我上传的修复版本,再试试看。希望你们能根据这个基础做出更多有趣的蓝牙控制项目!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 967

【unity实战】使用unity的Navigation+LineRenderer实现一个3D人物寻路提前指示预测移动轨迹的效果,并可以适配不同的地形

本文介绍了在Unity中使用Navigation导航系统和LineRenderer实现3D人物寻路轨迹预测效果的方法。通过NavMesh.CalculatePath计算路径点,结合Physics.Raycast进行地面点投射,将路径点赋予LineRenderer渲染出移动轨迹。关键点包括:1)利用NavMesh.CalculatePath计算两点间可行走路径;2)通过射线检测获取地面点提高路径适配性;3)使用协程定期更新路径绘制。文章还提供了完整代码实现,并说明需要将地面图层设置为Ground并进行导航网格

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 456

小程序中使用scroll-view滚到底部多次触发scrolltolower

最近写小程序的时候遇到一个问题,使用scroll-view组件的时候,有一个属性叫做bindscrolltolower,滚动到底部/右边,会触发 scrolltolower 事件。 不知道是代码编写有问题,还是组件问题。 如果将页面上拉到距离底部一定的高度之后,再松手,回滚到底部之后就会多次触发加载函数(loadMore)。 像这样子 查阅了网上的一些解决方案 1.scroll-view有一个...

一个前端小白的瞎扯 9846

软件设计师高频考点—套路题

学习交流的总结

秩沅 2538

UIScrollerView的scrollRectToVisible方法

UIScrollerView的scrollRectToVisible方法是让UIScrollerView视图滚动到可见内容的底部.(内容视图的高度减去本身的高度) 方法如下 :     [_tableView scrollRectToVisible:CGRectMake(0, _tableView.contentSize.height - _tableView.bounds.size.heig

Rio的博客 1066

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

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

UIScrollerView当前显示3张图

代码地址如下:http://www.demodashi.com/demo/11173.html WSLScrollView 功能描述:这是在继承UIView的基础上利用UIScrollerView进行了封装,支持循环轮播、自动轮播、自定义时间间隔、图片间隔、当前页码和图片大小,采用Block返回当前页码和处理当前点击事件的一个View。 一、效果图二、实现过程 逻辑结构示意图 ①、首先像往

findhappy117的博客 178

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【转载】UIScrollerView滚动方向判断

本文转载自Awei《UIScrollerView滚动方向判断》 PushListView.h @interfacePushListView :UIView<UITableViewDelegate,UITableViewDataSource { CGFloatco...

chuihuang3815的博客 135

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

UIScrollerView上AutoLayout的总结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34101784的博客 96

[IOS] —— UIScrollerView的基本属性

代码实现 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"素材1"]]; //拖动scrollerView内部区域时,滚动的并不是scrollerView,而是里面的图片,也可以理解为是contentsie self.scrollerView.contentSize ...

kk177的博客 288

如何使用UIScrollerView在StoryBoard实现上下引导页面

Storyboard、AutoLayout的确用的不顺手,不过有时候也极其体现它的效率。如下就已一个上下滑动的欢迎界面为例说明这一点。

286

UIScrollerView和UITableView下拉刷新,上拉加载更多

1、UIScrollerView的下拉、上拉功能。 http://pan.baidu.com/s/1c08Q2zA 2、UITableView的下拉、上拉功能。 http://pan.baidu.com/s/1eQzYUdW

nlyellow的专栏 331

UIScrollerView的简单使用

//新手小结,仅作为学习笔记。 (1)初始化 UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, 400)]; (2)滚动属性 UIScrollView的最大属性就是可以滚动,那种效果很好看,其实滚动的效果主要的原理是修改他的坐标,

DemoFootMan的博客 446

UIScrollerView遇到UINavigationController

项目中有一个页面的某个部分需要横向滚动显示多张图片。很自然想到使用UIScrollview,具体实现非常容易,最开始做了一个Demo,效果如下: 可是把这个ViewController添加到一个UINavigation中,结果就完全不一样了,如下: ...

dingzhengkuang5981的博客 114

关于UIScrollerView

@protocol UIScrollViewDelegate 几个概念的理解: contentSize:可滑动区域的大小 contentOffset:滑动视图里面的内容的相对位置 contentInset:滑动视图在外面的相对位置 1、只要view有滚动(不管是拖、拉、放大、缩小等导致)都会执行此函数 -(void)scrollViewDidScroll:(UIScrollView

681

EasySwift/YXJPullScale UITableView,UICollectionView,UIScrollerView的顶部放大控件,不仅支持图片,也支持任意视图

UITableView,UICollectionView,UIScrollerView的顶部放大控件,不仅支持图片,也支持任意视图 YXJPullScale EasySwift

stubbornness1219的博客 509

iOS开发学习之UIScrollerView实现新特性

大家好。相信大家都对一些APP的新特性有所了解了。 一个好的新特性,会让用户得到不一样的体验,会让用户很清晰的了解该APP的新特性功能。 然后,请让小虾米来说说我所学习的内容吧 。 首先,图片1,图片2,图片3 从图片分析当中,我们可以知道 它是一个UIScrollerView + UIPageControl。代码如下: #import "JHNewfeatureV

iOS_JH的专栏 951
上一篇: 解决OBJC_CLASS_$_MBProgressHUD无法引用的问题
下一篇: IOS开发真机调试 png图片问题
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值