自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书写人生

软件开发是个系统工程,除了语言、组件和接口,还有设计模式、设计思想等内容,只有充分分析业务逻辑,才能编写出切实可行的代码。

  • 博客(1193)
  • 资源 (49)
  • 收藏
  • 关注

原创 微信小程序左右联动菜单样式

【代码】微信小程序左右联动菜单样式。

2024-03-07 12:41:36 333 1

原创 c# iis Oracle链接

可见,如果仅仅是用SQL Developer连接数据库服务器端,或用SQL*Plus对数据库进行操作,相对于标准的客户端,Oracle Instant Client都是一个更好的选择,它大大简化了客户端的安装过程,占用空间极少,却包括必备的OCI、OCCI接口和ODBC、JDBC driver。但要注意第三方工具如:PL/SQL Developer和Toad的版本,32位的要对应32位的OracleInstant Client,不要因为系统是64位的就下载64位的,这个要注意。

2024-02-27 19:08:39 1020

转载 Oracle基础入门

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库该处理称为数据库恢复,而要进行数据库的恢复必须要有数据库的备份工作。注意:此导入是从要导入的文件中找到指定用户名的表进行导入,此文件也可以是全库的导出文件,即可以从全库的导出文件中只找到指定的用户进行导入,二者是可以相互使用的。

2024-01-27 21:22:57 93

转载 OGG实现Oracle到MySQL数据的传输

oracle到mysql的ogg属于异构的ogg,因此需要借助defgen命令生成的映射文件, 也就是两个表的映射关系,并把文件传到目标端相应位置下,才能完成数据库同步。上述对ogg实现oracle到mysql的数据同步,只是一个初步的理解,对部署搭建ogg还有不熟的地方,希望大家可以多多提提意见。在配置ogg时,配置的日志等路径,建议配置成相对路径,方便以后可以快速迁移ogg。Extract进程:运行在源端,主要是捕获数据的变化,负责全量、增量数据的抽取。

2024-01-27 21:21:16 171

转载 Oracle存储过程基本语法浅谈

-SYS_REFCURSOR 中可使用三个状态属性: ---%NOTFOUND( 未找到记录信息) %FOUND( 找到记录信息) ---%ROWCOUNT( 然后当前游标所指向的行位置)-- 此处声明了一个TestArray 的类型数据,其实其为一张存储Info 数据类型的Table 而已,及TestArray 就是一张表,有两个字段,一个是name ,一个是y。首先明确一个概念:Oracle 中本是没有数组的概念的,数组其实就是一张表(Table), 每个数组元素就是表中的一个记录。

2024-01-27 21:10:37 76

转载 C# 访问Oracle数据库

关于C#访问Oracle数据库的时候,必须安装Oracle客户端,而且必须安装和服务器相同的版本,否则会出现各种版本的不兼容问题,所以很多时候我们并不需要去安装完整的Oracle客户端,为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即。弄清楚了这些最基本的原理,我们的思路就会相当明确,无非就是使用Oracle客户端中的核心DLL来访问Oracle数据库服务端,那么究竟需要哪些重要的DLL呢?再看下面的这些专门写这些程序的博客。2 C#访问Oracle数据库。

2024-01-27 21:03:41 28

转载 Oracle存储过程的学习

or replace作用是如果在当前模式下数据库已经存在名为add_data_to_user的存储过程,就会覆盖之前创建的同名的存储过程。insert_data_to_user(d_name=>'张三',d_address => '上海');OUT: 输出类型的参数。insert_data_to_user('CSDN ','位置不详');IN: 输入型参数。

2024-01-27 21:00:58 52

原创 oracle数据库创建存储过程

【代码】oracle数据库创建存储过程。

2024-01-27 20:53:02 341

转载 oracle如何导出和导入数据库/表

到此整个完整的流程就结束了,刚开始的时候给别人导出了一份我们的数据库表,两边对应一致,但是没有想怎么导入,时间长了容易忘,写博客好不好,肯定好,但是怎么去坚持就成了重点,或许写的很儿科,当过去很长时间后再看自己写的也会感觉很可笑,我想这就可能对了,只有这样才能发现自己真的技术水平提高了,对于工作一年的人很容易出现好高骛远的情况,技术,只有持之以恒才能走向成功,现在,在成功的路上!运行情况:可以到PL/SQL工具查看是否已经导入和数据是否正确,操作的dos运行情况如下图所示。步骤一:打开cmd;

2024-01-27 20:51:26 118

转载 oracle “记录被另一个用户锁定“

出现的原因是有人对某一条数据进行了修改,oracle会通过这个事务记住这条数据,若修改的人没有进行提交或进行回滚记录,oracle是不允许对这条数据在此进行修改的,在这种情况下你要进行修改数据,则会被阻止,提示"记录被另外一个用户锁定"。另外,补充下,大多数这种情况都是由于修改了,没有commit造成的,比如有的人经常用for update修改数据,不提交导致锁表,对于for update的修改,可以用rowid代替,不会锁表的。现在就需要对其锁进行删除,以便达到修改数据的目的。

2024-01-27 20:50:20 342

原创 C# 实现某几页PDF 分割合并成新的PDF

【代码】C# 实现某几页PDF 分割合并成新的PDF。

2023-11-14 22:48:20 647

原创 MSSQL 配置ORACLE ​链接服务器

在有些场景,我们需要整合其他异构数据库的数据。我们可以使用代码去读取,经过处理后,再将数据保存到MSSQL数据库中。如果数据量比较大,但处理的逻辑并不复杂的情况下,这种方式就不是最好的办法。这时可以使用使用链接服务器来获取数据,直接在数据库上进行相关的处理和存储。检查办法:检查配置的“数据源”是否正确,可以在命令行中执行tnsping即可校验,如:tnsping testdb。访问接口字符串:testdb(这个是本地服务名,需要可以使用tnsping能ping能通)第二步:设置链接服务器的相关信息。

2023-11-08 21:42:31 1189

转载 PyCharm安装教程(详细步骤)

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。最后,这里免费分享给大家一套免费的学习资料,包含视频、源码/电子书,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我微信一起来学习交流。

2023-08-09 13:50:05 739

转载 在EasyUI项目中使用FileBox控件实现文件上传处理

使用EasyUI的控件FileBox的前端处理和后端C#代码,从而实现了文件的AJax处理操作,实现较好的体验和功能实现。

2023-02-11 17:08:11 3897 1

原创 机器配药发药管理系统业务流程及功能

它将药品放置在与其外形匹配的大小不同的药盒中,当接收到医院信息管理系统(HIS)传来的各病区医嘱信息时,自动识别现存的药品,经过智能选择后,将病人在同一时间服用的药品(胶囊)自动包入一个药袋内,即按单剂量包装,并在药袋上打印病人信息、药品信息、服用信息及条码,便于药师、护士核对和病人服用。该功能管理着配药全过程,它接收收费系统传递过来的处方信息,查询药品数据库和处方数据库,并根据处方药品信息和各窗口配药完成情况信息判断处方的发药模式和生成发药窗口,经过智能处理,产生一个配药、发药的任务,存放在任务队列中。

2023-02-03 08:19:45 608

原创 c# 读取dbf 数据库 DbfDataReader

【代码】c# 读取dbf 数据库 DbfDataReader。

2023-01-09 22:22:00 771

转载 nginx 配置域名 http https 80+443端口

注意,有些云服务商,如天翼云,未备案时禁用80/443/8080等端口。rm /etc/nginx/sites-enabled/default # 删除默认80端口配置。

2023-01-07 23:18:30 3226

原创 Nginx入门知识

比如上面说的例子,用户第一次请求时,负载均衡器(Nginx)将用户的请求分发到了A服务器上,如果负载均衡器(Nginx)设置了Session保持的话,那么用户以后的每次请求都会分发到A服务器上,相当于把用户和A服务器粘到了一块,这就是Session保持的原理。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

2023-01-07 23:16:38 965

原创 Extjs5项目进行中:菜单项动态加载(二)

菜单和菜单的子页面是分开加载的。页面代码如下:注意:树形结构设置为:001,001001,001001001。当前加载的是所有页面信息。所以,数据源绑定的时候,要分开操作。先绑定根节点,再根据根节点递归当前根节点的所有子节点。

2023-01-07 20:48:06 351

转载 c# 微信支付v3接口签名报错排查指引

什么是商户API证书?如何获取商户API证书?

2022-12-23 14:41:04 1522

原创 c# 微信支付API V3支付回调签名验证

微信支付会在回调的HTTP头部中包括回调报文的签名。商户必须 验证回调的签名,以确保回调是由微信支付发送。

2022-12-23 09:52:28 2042

原创 C# 微信支付APIv3 SDK RSAUtility

暂时没有看到关于微信支付APIv3 of C# 的SDK,对于新进来的开发人员在实现底层(签名,加密,验签)多多少少会碰一点点壁;下面提供相关方法供参考。(建议看下开发指引等内容)

2022-12-18 12:35:35 990

原创 使用SHA256WithRSA来签名和验签(.NET/C#)

使用SHA256WithRSA来签名和验签

2022-12-17 23:28:22 3044

转载 微信服务商平台ApiV3接口

在开始之前建议仔细读微信官方文档,接口规则及api文档。

2022-12-11 16:06:15 734

原创 微信支付API3 APP【统一下单 APIV3】

首先声明,我这个是为APP支付提供的接口!!!其他端使用时仅供参考!!本地调试时记得安装微信支付安全证书!!!发布到服务器上也要安装微信支付安全证书!!!私钥从微信支付后台发放的证书中拷贝出来!!!!!

2022-12-11 15:25:07 2027

原创 微信支付API v2与v3的区别

jsapi 拉起支付文档 : https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml。请大家花点时间认真看下文档。指引文档,更新日志,sdk,api字典等,这些都很重要,避免在开发过程中,遇到很多不必要的麻烦。总的来说,v3支付是对v2版本的升级,不过目前来看,v3的支付对接和实现对开发者更加友好,并且支付更加安全。

2022-12-10 20:09:20 9345

转载 C# .Net Core 微信H5支付API V3【统一下单,回调】

的开发体验,我们推出了全新的微信支付API v3。

2022-12-10 19:22:14 4422 1

原创 Extjs4.0 ComboBox如何实现三级联动

Extjs4.0 ComboBox如何实现,好在之前用3.x实现过一个三级联动,如今用Extjs4.0来实现同样的联动效果。其中注意的一点就是,3.x中的model:'local'在Extjs4.0中用queryMode: 'local'来表示,而且在3.x中Load数据时用reload,但是在extjs4.0中要使用load来获取数据。

2022-11-29 23:29:01 304

原创 MSSQL游标卡尺批量动态添加字段

DECLARE YOUCURNAME CURSOR FOR SELECT [部位] FROM [dbo].[TbPerson] group by [部位]exec('alter table TbPersonResult add ['+@A1+'] varchar(200) --处理结果')FETCH NEXT FROM youcurname INTO @A1 --下一条。@A1 VARCHAR(100) --处理结果的变量。

2022-09-24 23:57:29 241

原创 不良事件上报系统

风险评估功能要包括评估表管理、风险评估、风险评估查询、待评估列表、评估历史打印,要能够根据患者的基本情况进行预设评估,每一个风险评估具有评分值,可以根据评分值的高低对不良事件进行规避;★事件上报模块要具有医疗、护理、药品、跌倒坠床、压疮、院感、输血、管道滑落、给药缺陷、治安、后勤等多方面的不良事件上报,且上报项及内容可根据医院的要求自定义设置;★上报的事件要具有事件编号、上报人、上报时间、报告状态等内容,并支持相应事件处理的时间轴,时间轴要能清晰地显示事件上报的时间、上报人、审核人等各种操作记录;...

2022-08-11 14:02:18 1648 1

原创 C# 支付宝小程序 ---小程序支付

小程序支付和 APP 支付的支付流程与体验基本一致,也支持核销口碑券和口碑商家优惠功能。已签约小程序支付或在口碑开店的商家建议接入小程序支付。小程序支付在小程序内不能通过扫码、条码、声波付等方式支付,只能唤起收银台进行支付。更多详情可查看 小程序支付。快速示例提供了支付宝小程序在某些场景下的官方解决方案,提供了开发源码,开发者可以以此作为参考,也可以直接在源码的基础上进一步开发。本示例解决的是小程序支付。(点此下载源码)登录 开放平台控制台,进入对应小程序详情页 > 管理 > 能力管理 中添加 小程序支付

2022-06-22 08:06:31 2865

原创 c# 支付宝小程序开发 生成文本文件

文件系统是支付宝小程序提供的以小程序和用户维度隔离的存储系统及相应的管理接口。文件主要分为两大类:其中本地文件又分为三种:适用于放置首次加载时需要的文件,由于代码包文件大小有所限制,对于内容较大或需要动态替换的文件,不推荐将该文件添加到代码包中。访问代码包文件从项目根目录开始写文件路径,不支持相对路径的写法。例如:、 是合法的,、 则不合法。代码包内的文件无法在运行后进行动态修改或删除,若要修改代码包文件则需重新发布版本。本地文件指的是小程序被用户添加到手机后,以用户维度隔离,有一块独立的文件存储区域。即同

2022-06-11 16:58:31 626 1

原创 c# 支付宝小程序 tabs切换

支付宝小程序 tabs切换

2022-06-07 10:53:44 405

转载 c#支付宝小程序开发支付方法

1、进入支付宝去申请appid和密钥https://open.alipay.com/platform/home.htm 支付宝开放平台2、下载sdk根据自己是啥开发语言下载啥3、开始写代码 后台请求参数和方式 /// <summary> /// 支付宝支付 /// </summary> /// <param name="model"></param> ...

2022-05-30 14:23:16 1109

转载 c#支付宝小程序开发 前端调用函数方法

转载于:支付宝小程序如何在{{}}中使用函数方法_为难我胖虎c的博客-CSDN博客场景:例如我们在平常开发中会遇到后端返回一些时间、日期、金额等需要我们进行格式化处理的数据,这时候我们就需要在计算属性中写方法到xml中进行使用首先支付宝小程序到目前为止是还没有计算属性和监听方法的,那么我们要是想实现上面的方法都需要用到SJS和import-sjs了支付宝提供了import-sjs标签那么具体如何使用<import-sjs from="/utils/appUtil.sjs" name=.

2022-05-23 09:37:40 533

原创 c# 支付宝小程序入门教程(五)后端接收支付宝小城POST数据

支付宝小程序接口my.request,请求网络不支持multipart/form-data根据支付宝小程序官方的解释,小程序中无法使用multipart/form-data类型,需要转化为json或者application/x-www-form-urlencoded,会将数据转换成 query string方法一:json formSubmit: function (e) { var that = this var formData = e.detail.value

2022-05-22 21:28:32 603

原创 c#支付宝小程序入门教程(四)my.request的使用POST

因为request导致支付宝小程序错误:Uncaught TypeError: null is not an object (evaluating 'r[s]') at aJAX at success.my.request 是用于发起 HTTPS 网络请求的 API。更多问题请参见 my.request 常见问题。使用限制域名白名单请登录 开放平台控制台 > 点击要配置的小程序,进入小程序详情页 > 设置 > 开发设置 > 服务器域名白名单 中配.

2022-05-19 20:43:00 1661

转载 c#支付宝小程序入门 (三)微信小程序和支付宝小程序的差异

记录将微信小程序代码挪到支付宝小程序的过程中遇到的一些支付宝小程序和微信小程序的差异,以免每次都去官方文档查。1.文件后缀名微信小程序的四个文件后缀为.js、.json、.wxml、.wxss,支付宝小程序的四个文件后缀为.js、.json、.axml、.acss。使用命令将当前目录下后缀名为wxml的文件全部替换为axml,后缀名为wxss的文件换为acss:rename 's/\.wxml/\.axml/' * && rename 's/\.wxss/\.acss/'

2022-05-19 15:46:17 1649

原创 c# 支付宝小程序入门教程(二)小程序注册流程

支付宝小程序是一种全新的开放模式,让合作伙伴有机会分享支付宝及阿里集团多端流量和商业能力,为用户提供更好的体验,助力商家经营升级。注意:创建小程序前请了解 小程序经营类目及所需资质材料,避免不符合规范导致提交审核不通过。 本文适用于自研开发业务、小程序第三方开发业务,可查看 小程序三方业务开发指引;自研开发与第三方开发的区别,可查看 支付宝小程序。小程序快速开始从开发小程序到开展业务,需要经历以下主要阶段:前期准备在开发小程序之前,需要完成下列准备工作。1. 注册入驻

2022-05-19 08:17:41 795

原创 c#支付宝小程序开发 AES密钥解密

/// <summary> /// 支付宝小程序AES密钥解密 /// </summary> /// <param name="decryptStr"></param> /// <param name="key">小程序后台设置里的AES密钥</param> /// <returns></returns> public...

2022-05-19 08:15:16 697

NET图片加减法的验证码控件

NET图片加减法的验证码控件,、 this.CreateCheckCodeImage(GenerateCheckCode()); private string GenerateCheckCode() { int intFirst, intSec, intTemp; string checkCode = String.Empty; System.Random random = new Random(); intFirst = random.Next(1, 10); intSec = random.Next(1, 10); switch (random.Next(1, 3).ToString()) { case "2": if (intFirst < intSec) { intTemp = intFirst; intFirst = intSec; intSec = intTemp; } checkCode = "=" + intFirst + "-" + intSec; Session["ValidCode"] = intFirst - intSec; break; default: checkCode = "=" + intFirst + "+" + intSec; Session["ValidCode"] = intFirst + intSec; break; } //Response.Cookies.Add(new HttpCookie("ValidCode",Movie.Common.AES.EncryptAes(checkCode))); return checkCode; } #region 产生波形滤镜效果 private const double PI = 3.1415926535897932384626433832795; private const double PI2 = 6.283185307179586476925286766559; private System.Drawing.Bitmap TwistImage(Bitmap srcBmp, bool bXDir, double dMultValue, double dPhase) { System.Drawing.Bitmap destBmp = new Bitmap(srcBmp.Width, srcBmp.Height); // 将位图背景填充为白色 System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(destBmp); graph.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, destBmp.Width, destBmp.Height); graph.Dispose(); double dBaseAxisLen = bXDir ? (double)destBmp.Height : (double)destBmp.Width; for (int i = 0; i < destBmp.Width; i++) { for (int j = 0; j < destBmp.Height; j++) { double dx = 0; dx = bXDir ? (PI2 * (double)j) / dBaseAxisLen : (PI2 * (double)i) / dBaseAxisLen; dx += dPhase; double dy = Math.Sin(dx); // 取得当前点的颜色 int nOldX = 0, nOldY = 0; nOldX = bXDir ? i + (int)(dy * dMultValue) : i; nOldY = bXDir ? j : j + (int)(dy * dMultValue); System.Drawing.Color color = srcBmp.GetPixel(i, j); if (nOldX >= 0 && nOldX < destBmp.Width && nOldY >= 0 && nOldY < destBmp.Height) { destBmp.SetPixel(nOldX, nOldY, color); } } } return destBmp; } #endregion

2015-08-26

微信公众平台 网页授权获取用户基本信息(.net)

微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["reurl"].ToString(); } string code = ""; if (Request.QueryString["code"] != null && Request.QueryString["code"] != "") { //获取微信回传的code code = Request.QueryString["code"].ToString(); OAuth_Token Model = Get_token(code); //获取token OAuthUser OAuthUser_Model = Get_UserInfo(Model.access_token, Model.openid ); if(OAuthUser_Model.openid!=null && OAuthUser_Model.openid !="") //已获取得openid及其他信息 { //在页面上输出用户信息 Response.Write("用户OPENID:" + OAuthUser_Model.openid + "<br>用户昵称:" + OAuthUser_Model.nickname + "<br>性别:" + OAuthUser_Model.sex + "<br>所在省:" + OAuthUser_Model.province + "<br>所在市:" + OAuthUser_Model.city + "<br>所在国家:" + OAuthUser_Model.country + "<br>头像地址:" + OAuthUser_Model.headimgurl + "<br>用户特权信息:" + OAuthUser_Model.privilege); //或跳转到自己的页面,想怎么处理就怎么处理 Response.Redirect(reurl); } }

2015-08-14

响应式设计css+兼容手机+平板+电脑PC 跨屏响应式布局前端开发CSS框架

响应式css+兼容手机+平板+电脑PC 拼图跨屏响应式布局前端开发CSS框架-综合示例

2015-05-06

css兼容手机、平板、PC各种分辨率的网站

css兼容手机、平板、PC各种分辨率的网站,css兼容pc+平板+手机范例

2015-05-06

C#-Net判断微信内置浏览器网页

C# 。Net判断微信内置浏览器网页,微信内置浏览器打开的网页

2015-04-23

winform+Ui+高仿彗星小助手

小助手Demo】高仿彗星小助手-2014.8.26更新

2015-03-25

移动开发html5通讯录上拉加载下拉刷新

移动开发html5通讯录上拉加载下拉刷新

2015-03-24

读取excel中的数据并存入SQL_Server数据库.rar

excel 显示Datagriew 读取excel中的数据并存入SQL_Server数据库.rar

2015-03-23

App Framework Explained

App FrameWork是基于HTML5重写的jQuery框架,对其进行了简化,更有利于在移动设备上应用,并且速度比较流畅。 App FrameWork框架页面基本都在同一个HTML文档中,在内容区(#content)里面放置多个class为"panel"的p, 这里每个p即为一个页面。当panel设置selected="true"属性后,在应用打开之后默认加载该页面,其他都是隐藏的(display:none)。这些页面之间通过锚链接来跳转,并将目标页面的display设置为"block",同时给需要隐藏的页面一个向左移动的动画,加之panel页面使用绝对定位,宽度高度均铺满content,这样的跳转就达到了native应用页面切换的效果。在页面切换时,另外的动作就是将panel页面中已经定义的title属性中的值显示到导航中,并可以设置属性data-tab的值来选中对应的标签。

2015-03-23

winform Excel读取数据到 DataGridView

winform Excel读取数据到 DataGridView byte[] content; FileStream fs = File.OpenRead(open.FileName); content = new byte[fs.Length]; fs.Read(content, 0, content.Length); fs.Close(); string fileExName = open.FileName; strPath = fileExName; string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileExName + ";" + "Extended Properties=Excel 8.0;"; OleDbConnection con = new OleDbConnection(strConn); con.Open(); string[] names = GetExcelSheetNames(con, ShiftCount);

2015-03-17

Android+Fragment+TabHost模仿新浪新闻布局界面

Android+Fragment+TabHost模仿新浪新闻布局界面

2015-03-09

【Android】时光轴效果.rar

这是安卓开发正在学习的同学不容错过的一个比较好的学习资源。希望能够实践的同学别错过。

2015-03-09

Swift仿Twitter的导航条和页面

Swift仿Twitter的导航条和页面,可以自定义页面数量。 // // PagingNavController.swift // SwiftPagingNav // // Created by Aubrey & Chad on 10/31/14. // Copyright (c) 2014 Aubrey Johnson / Chad Timmerman. All rights reserved. // import UIKit class PagingNavController: UIViewController, UIScrollViewDelegate { var scrollView:UIScrollView! var pageControl:UIPageControl! var navbarView:UIView! var navTitleLabel1:UILabel! var navTitleLabel2:UILabel! var navTitleLabel3:UILabel! var view1:UIView! var view2:UIView! var view3:UIView! override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.lightGrayColor() //Creating some shorthand for these values var wBounds = self.view.bounds.width var hBounds = self.view.bounds.height // This houses all of the UIViews / content scrollView = UIScrollView() scrollView.backgroundColor = UIColor.clearColor() scrollView.frame = self.view.frame scrollView.pagingEnabled = true scrollView.showsHorizontalScrollIndicator = false scrollView.delegate = self scrollView.bounces = false self.view.addSubview(scrollView) self.scrollView.contentSize = CGSize(width: self.view.bounds.size.width * 3, height: hBounds/2) //Putting a subview in the navigationbar to hold the titles and page dots navbarView = UIView() self.navigationController?.navigationBar.addSubview(navbarView) //Paging control is added to a subview in the uinavigationcontroller pageControl = UIPageControl() pageControl.frame = CGRect(x: 0, y: 35, width: 0, height: 0) pageControl.backgroundColor = UIColor.whiteColor() pageControl.numberOfPages = 3 pageControl.currentPage = 0 pageControl.currentPageIndicatorTintColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1) pageControl.pageIndicatorTintColor = UIColor.whiteColor() self.navbarView.addSubview(pageControl) //Titles for the nav controller (also added to a subview in the uinavigationcontroller) //Setting size for the titles. FYI changing width will break the paging fades/movement var titleSize = CGRect(x: 0, y: 8, width: wBounds, height: 20) navTitleLabel1 = UILabel() navTitleLabel1.frame = titleSize navTitleLabel1.text = "Home" navTitleLabel1.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel1) navTitleLabel2 = UILabel() navTitleLabel2.frame = titleSize navTitleLabel2.text = "Discover" navTitleLabel2.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel2) navTitleLabel3 = UILabel() navTitleLabel3.frame = titleSize navTitleLabel3.text = "Activity" navTitleLabel3.textAlignment = NSTextAlignment.Center self.navbarView.addSubview(navTitleLabel3) //Views for the scrolling view //This is where the content of your views goes (or you can subclass these and add them to ScrollView) view1 = UIView() view1.backgroundColor = UIColor(red:0.325, green:0.667, blue:0.922, alpha: 1) view1.frame = CGRectMake(0, 0, wBounds, hBounds) self.scrollView.addSubview(view1) self.scrollView.bringSubviewToFront(view1) //Notice the x position increases per number of views view2 = UIView() view2.backgroundColor = UIColor(red:0.231, green:0.529, blue:0.757, alpha: 1) view2.frame = CGRectMake(wBounds, 0, wBounds, hBounds) self.scrollView.addSubview(view2) self.scrollView.bringSubviewToFront(view2) //Notice the x position increases yet again (wBounds * 2) view3 = UIView() view3.backgroundColor = UIColor(red:0.529, green:0.600, blue:0.647, alpha: 1) view3.frame = CGRectMake(wBounds * 2, 0, wBounds, hBounds) self.scrollView.addSubview(view3) self.scrollView.bringSubviewToFront(view3) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() navbarView.frame = CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 44) } func scrollViewDidScroll(scrollView: UIScrollView) { var xOffset: CGFloat = scrollView.contentOffset.x //Setup some math to position the elements where we need them when the view is scrolled var wBounds = self.view.bounds.width var hBounds = self.view.bounds.height var widthOffset = wBounds / 100 var offsetPosition = 0 - xOffset/widthOffset //Apply the positioning values created above to the frame's position based on user's scroll navTitleLabel1.frame = CGRectMake(offsetPosition, 8, wBounds, 20) navTitleLabel2.frame = CGRectMake(offsetPosition + 100, 8, wBounds, 20) navTitleLabel3.frame = CGRectMake(offsetPosition + 200, 8, wBounds, 20) //Change the alpha values of the titles as they are scrolled navTitleLabel1.alpha = 1 - xOffset / wBounds if (xOffset <= wBounds) { navTitleLabel2.alpha = xOffset / wBounds } else { navTitleLabel2.alpha = 1 - (xOffset - wBounds) / wBounds } navTitleLabel3.alpha = (xOffset - wBounds) / wBounds } func scrollViewDidEndDecelerating(scrollView: UIScrollView) { var xOffset: CGFloat = scrollView.contentOffset.x //Change the pageControl dots depending on the page / offset values if (xOffset < 1.0) { pageControl.currentPage = 0 } else if (xOffset < self.view.bounds.width + 1) { pageControl.currentPage = 1 } else { pageControl.currentPage = 2 } } }

2015-03-09

swift编写简单的左右菜单栏

swift编写简单的左右菜单栏 // // MenuViewController.swift // Menu // // Created by innovane on 14-6-23. // Copyright (c) 2014年 innovane. All rights reserved. // import UIKit let kICSDrawerControllerLeftViewInitialOffset : CGFloat = 60.0 let kICSDrawerControllerDrawerDepth : CGFloat = 200.0 enum ICSDrawerControllerState : Int { case MenuControllerStateOpening case MenuControllerStateClosing } class MenuViewController: UIViewController { //用户点击center var tapGestureRecognizer : UITapGestureRecognizer! // 用户拖动视图 var panGestureRecognizer : UIPanGestureRecognizer! // 用户touch的点位置 var panGestureStartLocation : CGPoint! // 左边控制器 var leftViewController : UIViewController! //中间控制器 var centerViewController : UIViewController! var drawerState : ICSDrawerControllerState! init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // Custom initialization } override func viewDidLoad() { super.viewDidLoad() self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing; } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) // 将左边控制器加入导航栏中。 if self.leftViewController != nil{ if (self.leftViewController.view.superview == nil){ self.addChildViewController(self.leftViewController) self.view.insertSubview(self.leftViewController.view, atIndex:0) } } if self.centerViewController != nil{ if (self.centerViewController.view.superview == nil){ self.addChildViewController(self.centerViewController) self.view.addSubview(self.centerViewController.view) } } // 添加用户拖动事件。 self.panGestureRecognizer = UIPanGestureRecognizer() self.panGestureRecognizer.addTarget(self,action:"panGestureRecognized:"); self.centerViewController.view.addGestureRecognizer(self.panGestureRecognizer) } // 用户拖动视图调用代理方法。 func panGestureRecognized(panGestureRecognizer:UIPanGestureRecognizer){ // 用户对视图操控的状态。 var state = panGestureRecognizer.state; var location = panGestureRecognizer.locationInView(self.view) var velocity = panGestureRecognizer.velocityInView(self.view) switch (state) { case UIGestureRecognizerState.Began: // 记录用户开始点击的位置 self.panGestureStartLocation = location; println("Began") break; case UIGestureRecognizerState.Changed: println("Changed") var c = self.centerViewController.view.frame if (panGestureRecognizer.translationInView(self.centerViewController.view).x > 0){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateClosing){ c.origin.x = location.x - self.panGestureStartLocation.x; } }else if (panGestureRecognizer.translationInView(self.centerViewController.view).x > -kICSDrawerControllerDrawerDepth){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){ c.origin.x = panGestureRecognizer.translationInView(self.centerViewController.view).x+kICSDrawerControllerDrawerDepth } } self.centerViewController.view.frame = c ; break; case UIGestureRecognizerState.Ended: var c = self.centerViewController.view.frame // 表示用户需要展开 if (location.x - self.panGestureStartLocation.x > kICSDrawerControllerLeftViewInitialOffset){ self.didOpen() }else{ if (c.origin.x < (kICSDrawerControllerDrawerDepth - 40)){ self.didClose() }else{ self.didOpen() } } break; default: break; } } // 移除点击事件,添加拖动事件 func tapGestureRecognized(tapGestureRecognizer : UITapGestureRecognizer){ self.didClose(); } // 菜单栏打开 func didOpen(){ var c = self.centerViewController.view.frame c.origin.x = kICSDrawerControllerDrawerDepth; UIView.animateWithDuration(0.7,delay:0,usingSpringWithDamping:0.5,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{ self.centerViewController.view.frame = c ; },completion: { (finished: Bool) -> Void in }) self.drawerState = ICSDrawerControllerState.MenuControllerStateOpening //增加点击事件 if (self.tapGestureRecognizer == nil){ self.tapGestureRecognizer = UITapGestureRecognizer() self.tapGestureRecognizer.addTarget(self,action:"tapGestureRecognized:"); } self.centerViewController.view.addGestureRecognizer(self.tapGestureRecognizer) } // 菜单关闭 func didClose(){ if (self.drawerState == ICSDrawerControllerState.MenuControllerStateOpening){ self.drawerState = ICSDrawerControllerState.MenuControllerStateClosing self.centerViewController.view.removeGestureRecognizer(self.tapGestureRecognizer) } var c = self.centerViewController.view.frame c.origin.x = 0 UIView.animateWithDuration(0.5,delay:0,usingSpringWithDamping:0.9,initialSpringVelocity:1.0,options:UIViewAnimationOptions.AllowUserInteraction,animations:{ self.centerViewController.view.frame = c ; },completion: { (finished: Bool) -> Void in }) } }

2015-03-09

Android仿qq播放器.rar

Android仿qq播放器的代码,经过测试是一个不错的代码

2015-02-27

Android抢红包源码

Android抢红包源码。是一个很不错的代码

2015-02-27

Android调用webService显示地区

Android调用webService显示地区.能显示全国各个地区。访问WebService的工具类

2015-01-13

android手势滑动引导界面

android手势滑动引导界面.一个开机引导画面。类似微信第一次进入。

2015-01-13

Android播放器后台运行代码notification

Android播放器后台运行代码notification

2015-01-05

[安卓开源]高仿人人网客户端

[安卓开源]高仿人人网客户端.android 代码

2014-12-30

vue-element-admin-master.zip

vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。

2020-06-30

vue-jwt-demo-master.zip

vue通过jwt认证。import Vue from 'vue' import App from './App.vue' import Login from './component/Login.vue' import Home from './component/Home.vue' import VueRouter from 'vue-router' import VueResource from 'vue-resource' import auth from './auth/auth' Vue.use(VueRouter) Vue.use(VueResource) //在启动APP时进行校验是否有token auth.checkAuth() const routes= [ { path:'/',redirect:'/login' }, { path:'/login',component:Login }, { path:'/home',component:Home } ] const router = new VueRouter({ routes }) new Vue({ router, render: h => h(App) }).$mount('#app')

2020-06-30

vue-wechat-login-master.zip

vue微信授权登录,new Vue({ router, store, render: h => h(App) }).$mount('#app')

2020-06-30

js显示屏特效火车站高铁站列车时刻表切换特效.rar

显示屏特效火车站高铁站列车时刻表切换特效, 模拟数据库读取列车时刻表数据。然后随机在页面显示滚动结果

2020-04-12

HTML和CSS3制作的可编辑的微软Word样式文档

HTML和CSS3制作的可编辑的微软Word样式文档。该特效提供一组预定义的样式,用于在WEB页面中生成各种尺寸的Word样式的文档效果。它提供的样式包括: sheets-of-paper-a4.css:A4纸(21cm × 29.7cm) sheets-of-paper-a3.css:A3纸(29.7cm × 42cm) sheets-of-paper-usletter.css:US letter(21.6cm × 27.9cm) sheets-of-paper-uslegal.css:US legal(21.6cm × 35.6cm) sheets-of-paper-ustabloid.css:US tabloid(27.9cm × 43.2cm)

2020-04-09

百度地图聚合显示.zip

百度地图地区聚合显示房产数据。数据量较少,所以不是每一个区下面都有数据,只模拟造了少量数据,并且能显示所有行政边界。

2019-11-20

c# 文字转为拼音或者拼音首字母类TChinese

string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.FirstLetterOnly); string result = TChinese.MakeSpellCode(strChinese, TChineseOptions.EnableUnicodeLetter);

2019-05-28

微信小程序 模仿coco的微信点餐系统

微信小程序

2018-01-13

dropload 下拉刷新 上拉加载 jquery 控件

domUp : { // 上方DOM domClass : 'dropload-up', domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>', domUpdate : '<div class="dropload-update">↑释放更新</div>', domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>' }, domDown : { // 下方DOM domClass : 'dropload-down', domRefresh : '<div class="dropload-refresh">↑上拉加载更多</div>', domLoad : '<div class="dropload-load"><span class="loading"></span>加载中...</div>', domNoData : '<div class="dropload-noData">暂无数据</div>' },

2017-09-26

快速排序Quicksort演示

日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。 目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(1934--)于1960时提出来的

2017-09-11

fullcalendar-1.6.4-feifei修改版

fullcalendar-1.6.4-feifei修改版

2017-08-21

weui 时间控件含全天 上午 下午 选择

weui 时间控件含全天 上午 下午 选择

2017-08-09

高仿微信企业号 基础应用审批样式weui

高仿微信企业号 基础应用审批样式weui

2017-08-08

winform DockPanel框架

DockPanel Suite是一个国外 winform框架开源项目

2017-06-02

微信小程序 购物车UI

医疗服务顾客满意度测评管理 原价45元 ¥41.00

2017-05-25

net-jquery-cookie 购物车 以及Cookie 存储示例

function storecookie(value){ $.cookie('name',value,{expires:1}); } function showcookie(name){ var cookieValue = $.cookie(name); $("#tvalue").val(cookieValue); } function deletecookie(name){ $.cookie(name,null); } function setDatecookie(date){ $.cookie('name','admin',{expires:date}); }

2017-05-25

NET DotNetZip 多文件压缩打包组件

在对多文件打包中用到了 DotNetZip 的方法来实现对多文件压缩打包,下载该文件,然后引用即可。

2017-02-17

PHP微信支付接口开发代码

PHP微信支付接口开发代码 <script type="text/javascript"> //调用微信JS api 支付 function jsApiCall() { WeixinJSBridge.invoke( "getBrandWCPayRequest", '.$jsApiParameters.', function(res){ //alert(res.err_msg); //WeixinJSBridge.log(res.err_msg); location.href = "http://www.xxx.com/wap/tmpl/member/order_list.html"; } ); } function callpay() { if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener("WeixinJSBridgeReady", jsApiCall, false); }else if (document.attachEvent){ document.attachEvent("WeixinJSBridgeReady", jsApiCall); document.attachEvent("onWeixinJSBridgeReady", jsApiCall); } }else{ jsApiCall(); } } callpay(); </script>

2016-03-06

iOS 新闻系统源代码

iOS 新闻系统源代码 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"city"]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"city"]; } CityItems *item = [_dataArray objectAtIndex:indexPath.row]; cell.textLabel.text = item.name; cell.textLabel.textColor = [UIColor whiteColor]; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if ([self.delegate respondsToSelector:@selector(didSelectRow:andCityZip:)]){ CityItems *item = [_dataArray objectAtIndex:indexPath.row]; [self.delegate didSelectRow:self andCityZip:item.zip]; } }

2015-12-13

2004-2012网络工程师试题

2004-2012网络工程师试题

2015-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除