context

计算文本的高度BoundingRectWithSize:options:context

穿精又带淫゛_ 提交于 2020-01-25 02:11:18
- ( CGRect )boundingRectWithSize:( CGSize ) size options:( NSStringDrawingOptions ) options context:( NSStringDrawingContext *) context 解释一下三个参数 1) size 用于限制尺寸,计算机绘制时会在这个size的限制范围内 2)options 文本绘制时的附加选项 例: NSStringDrawingUsesFontLeading使用字体来限制高度 3)context 上下文。包括一些信息,例如如何调整字间距以及缩放。最终对象包含的信息可以为空 返回值 返回一个举行,大小等于文本绘制完成时所占据的宽和高 来源: https://www.cnblogs.com/fanxinguu/p/4626469.html

HTML5 canvas

可紊 提交于 2020-01-25 01:05:51
canvas元素: 是HTML5新增的专门用来绘制图形的元素。canvas元素是一块无色透明的区域,它只是一个容器,本身不具备绘制的功能,开发者通过javascript脚本在区域上实现任意绘图。并不是所有浏览器都支持canvas元素。 camvas只有两个可选的属性width、height,如果不设置,则默认width为300,height为150,单位都是px。也可以使用css属性来设置宽高,但是如果宽高属性和初始比例不一样,会出现扭曲,所以建议不要使用css属性来设置宽高。 <body> <canvas id=”mycanvas” width=”” height=””> 您的浏览器不支持canvas元素,请更新或更换您的浏览器。 //替代内容,如果浏览器不支持canvas元素,会显示替代内容。如果支持,会忽略替代内容,正常渲染canvas元素。 </canvas> </body> 步骤: 在html5页面的 <body></body> 元素中添加 <canvas></canvas> 元素 <canvas id=”mycanvas” width=”” height=””></canvas> 使用id寻找页面中的canvas元素 window.onload=function(){ var canvas =document.getElementById(“mycanvas”); }

关于<Java 中 RMI、JNDI、LDAP、JRMP、JMX、JMS那些事儿(上)>看后的一些总结-2

空扰寡人 提交于 2020-01-24 22:33:42
关于JNDI: 命名系统是一组关联的上下文,而上下文是包含零个或多个绑定的对象,每个绑定都有一个原子名(实际上就是给绑定的对象起个名字,方便查找该绑定的对象), 使用JNDI的好处就是配置统一的管理接口,下层可以使用RMI、LDAP或者CORBA来访问目标服务 要获取初始上下文,需要使用初始上下文工厂 比如JNDI+RMI Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); env.put(Context.PROVIDER_URL, "rmi://localhost:9999"); Context ctx = new InitialContext(env); //将名称refObj与一个对象绑定,这里底层也是调用的rmi的registry去绑定 ctx.bind("refObj", new RefObject()); //通过名称查找对象 ctx.lookup("refObj"); 比如JNDI+LDAP Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi

深入Gin框架内幕(二)

天大地大妈咪最大 提交于 2020-01-24 20:41:43
在上一篇文章 深入gin框架内幕(一) 中,主要介绍了Gin框架中是如何创建一个HTTP服务以及内部的核心结构和常用的一些结构体方法,并在最后以一个简单的示例来详细讲解Gin框架内部具体是如何运行的,但是在最后我们会发现使用了一个 Context 引用对象的一些方法来返回具体的HTTP响应数据,在本篇文章中,我们将继续学习和分析Gin框架内幕。 在开始分析之前,我们先简单回顾一下上一个章节中讲到的Gin框架中的几个核心的结构. Gin框架中的几个核心结构 Gin框架中的几个重要的模型: Engine : 用来初始化一个 gin 对象实例,在该对象实例中主要包含了一些框架的基础功能,比如日志,中间件设置,路由控制(组),以及handlercontext等相关方法. 源码文件 Router : 用来定义各种路由规则和条件,并通过HTTP服务将具体的路由注册到一个由context实现的handler中 Context: Context 是框架中非常重要的一点,它允许我们在中间件间共享变量,管理整个流程,验证请求的json以及提供一个json的响应体. 通常情况下我们的业务逻辑处理也是在整个Context引用对象中进行实现的. Bind: 在Context中我们已经可以获取到请求的详细信息,比如HTTP请求头和请求体,但是我们需要根据不同的HTTP协议参数来获取相应的格式化

Net Quartz使用

我们两清 提交于 2020-01-24 17:35:26
安装Quartz 已经先安装了2.5版本,现在换成2.4 程序包管理器控制台: PM> Install-Package Quartz -Version 2.4 正在尝试收集与目标为“.NETFramework,Version=v4.5.2”的项目“ConsoleApplication2”有关的包“Quartz.2.4.0”的依赖项信息 正在尝试解析程序包“Quartz.2.4.0”的依赖项,DependencyBehavior 为“Lowest” 正在解析操作以安装程序包“Quartz.2.4.0” 已解析操作以安装程序包“Quartz.2.4.0” 已从“packages.config”中删除程序包“Quartz.2.5.0” 已从 ConsoleApplication2 成功卸载“Quartz.2.5.0” GET https://api.nuget.org/packages/quartz.2.4.0.nupkg OK https://api.nuget.org/packages/quartz.2.4.0.nupkg 136ms 正在安装 Quartz 2.4.0。 正在将程序包“Quartz.2.4.0”添加到文件夹“D:\UserData\Administrator\Documents\Visual Studio 2015\Projects

iOS中UIView翻转效果实现

帅比萌擦擦* 提交于 2020-01-24 16:16:31
本文转载至 http://baishiyun.blog.163.com/blog/static/13057117920148228261747/ 新建一个view-based模板工程,在ViewController文件中添加下面的代码,即可实现翻转效果; - (void)viewDidLoad { [super viewDidLoad]; //需要翻转的视图 UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)]; parentView.backgroundColor = [UIColor yellowColor]; parentView.tag = 1000; [self.view addSubview:parentView]; } //需要在h头文件声明下面的动作响应函数 //在xib文件中添加一个button,其响应函数为下面的函数 //运行程序后,点击button就看到翻转效果 -(IBAction)ActionFanzhuan{ //获取当前画图的设备上下文 CGContextRef context = UIGraphicsGetCurrentContext(); //开始准备动画 [UIView beginAnimations:nil context:context

SpringBoot框架(2)--配置文件

青春壹個敷衍的年華 提交于 2020-01-24 09:04:17
1、添加新项目,选择Spring Initializr方式创建项目 ==>命名相关信息 2、默认配置读取顺序 -- /config/路径下优先,xxx.properties 比 xxx.yml 优先 /resourses/config/application.properties > /resourses/config/application.yml > /resourses/application.properties > /resourses/config/application.yml 注意:默认读取的配置文件必须命名为:application,否者读取不到。 2.1 通过Environment方式读取 ==> /resources/application.properties文件 1 local.ip.addr=192.168.3.110-pro 1 package com.demo.boot.bootconfig; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.context

HTML5-Canvas对图片的操作

风流意气都作罢 提交于 2020-01-24 05:45:17
Canvas图片API非常强大,有两个最基础的方法,一是展示图片,二是像素级的修改图片后再把它打印到画布上。 1、通过drawImage()将图片显示在画布上 var img = new Image(); img.src = ''; img.onload = function(){ ctx.drawImage(img,0,0) } 2、截取图片的一部分到画布上 //(sx , sy )开始位置 //(sw , sh )目标大小(缩放) //(dx , dy )截取开始位置 //(dw , dh )截取大小 function drawImage(Image , sx , sy , sw , sh , dx , dy , dw , dh){ //code... } //看第四个缩放和平移图片的例子就会发现这个函数的强大之处 3、旋转图片 /* 1、将当前的画布背景保存起来,context.save() 2、重置变换矩阵,context.setTransform(1,0,0,1,0,0); 3、编码转换角度的算法,angle = 90 * Math.PI / 180;使用PI单位 context.translate(x,y),因为旋转的整个画布对象 4、context.drawImage */ function rotate() { ctx.save(); ctx

Tomcat工作原理

蹲街弑〆低调 提交于 2020-01-24 05:31:15
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 - Service A Service element represents the combination of one or more Connector components that share a single Engine Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求 1.3 - Connector 一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户 TOMCAT有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其它WebServer的请求 Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求 Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求 1.4 - Engine The Engine

Android Broadcast

爷,独闯天下 提交于 2020-01-24 05:22:23
广播接收者(BroadcastReceiver)用于接收广播,广播Intent的发送是通过调用Context.SendBroadcast()、Context.sendOrdredBroadcast()来实现的,通常一个广播Intent可以被订阅了此Intent的广播接收者接收,这个特性跟JMS中的Topic消息接收者类似,要实现一个广播接收者方法: 1、继承BroadcastReceiver,重写onReceive()方法; 2、订阅感兴趣的广播Intent,订阅方式有两种: >>1.代码方式注册, 在onStart()中调用registerReceiver()进行注册和在onStop中调用unregisterReceiver()释放服务 : IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); IncomingSMSReceiver receiver = new IncomingSMSReceiver(); registerReceiver(receiver,filter); unregisterReceiver(receiver) >>2.XML方式注册,在Manifest.xml中application节点里进行订阅 <receiver android:name=