怎样设置layer.open默认以最大化方式打开

怎样设置layer.open默认以最大化方式打开,第1张

layerfull ;//最大化

//方法一:

layeropen({

 type: 1,

 maxmin: true,

 success: function(layero,index){

  //在回调方法中的第2个参数“index”表示的是当前d窗的索引。

  //通过layerfull方法将窗口放大。

  layerfull(index);

 }

}); 

//方法二:

var win = layeropen({

 type: 1,

 maxmin: true

});  

layerfull(win);

layerd层不能实现,是 *** 作过程中出现错误造成的,解决方法如下:

1、首先要先引用layerjs。

2、添加对应触发d出框的按钮,写javascript代码进行处理,在layeropen的配置项中加上 maxmin:true。

3、这样d出框会出现最大化和最小化按钮,用一个layerIndex变量保存打开的d出框索引,用于最小化和还原时动态隐藏遮罩层。

4、最后添加min、restore方法用于控制遮罩层的打开与隐藏,open的时候要加上title配置项,且值不能为空,要不然最小化的时候会看不到d出框最小化的内容。

5、显示最小化时隐藏遮罩层如下图。

调用layerd窗做动态内容展示的时候,只要内容不固定或者需要二次渲染

比如layuiformrender()进行渲染的时候,由于d窗已经出来了,只是content部分的结构改变了宽度或者高度,layer的d窗就不能居中了

可以使用下面这个强制居中的函数

function refreshArea(_formWin){

    var _formWinObj = $("#layui-layer"+_formWin);

      var w = _formWinObjouterWidth();

      var h = _formWinObjouterHeight();

      var l = ($(document)width()-w)/2;

      var t = ($(window)height()-h)/2;

      _formWinObjcss({

          "left":l,

          "top":t

      });

}

_formWin 是 layer窗口的index,直接传进去就行

也可以更改成传入当前d窗的类,具体可以根据自己的需求来

原因: 所有性能计数器名和解释文本都通过性能计数器子系统(Perflib)在字符串表中得到管理。 此错误是由于处理计数器列表时发生了一个竞争问题。当LoadPerfdll读取了最后计数器的索引值的同时又有其他计数器被添加,于是新的计数器的索引值比

Core Animation的基本使用(十六) 发表于2013/08/25由juluren layer tree addSublayer: 将层追加到接受者的子层数组中。 insertSublayer:atIndex: 将层插入到接收者指定的索引位置作为子层。 insertSublayer:below: 将层插入到接受者的子层数组中,位于指定子层的下面。 insertSublayer:above: 将层插入到接受者的子层数组中,位于指定子层的上面。 removeFromSuperlayer 将接收者从子层数组中或者接收者超层的mask属性中移出。 replaceSublayer:with: 用新层替换接收者的子层数组中的层。 你也可以用层的数组设置子层,只要设置超层的sublayers属性。当用层对象的数组设置sublayer属性时,必须确保这些层的superlayer被置为nil。 默认情况下,从一个可见的层树中插入或移出层会出发动画。当层被作为子层添加,父层返回标识为kCAOrderIn动作的动画被触发。当从层的子层中移除一 个层时,父层返回kCAOrderOut动作标识的动画被触发。替换子层中的一个层导致父层返回kCATransition动作标识的动画被触发。你可以 在 *** 作层树时关掉动画,或者用任何动作标识改变动画。 当你使用addSublayer来添加一个子层的是,在把这个子层添加到父层层结构的最上层。所以它将会显示在任何现有层的上面。使用 insertSublayer方法可以再层结构中插入层。 要在一个特殊的索引里面插入层,可以使用atIndex 参数。 [ rootLayer insertSublayer: layer1 atIndex: 1 ]; 要在另一个层的上面或者下面插入层,可以使用above 或者 below 参数 [ rootLayer insertSublayer: layer1 below:layer2 ]; [ rootLayer insertSublayer: layer1 above:layer2 ]; 要把一个层从父层中删除,可以调用此层的removeFromSuperlayer来删除。 [ layer1 removeFromSuperlayer ]; 要用一个不同的层来替换一个已存在的层,可以使用replaceSublayer方法。 [ rootLayer replaceSublayer: layer2 with: layer3 ]; 要把一个层留在父层的层结构中,但是不显示它,可以使用层的hidden属性。你可以使用下面的代码来隐藏HUDView显示的内容,而不用去删除它。 – (void) ToggleHUD { layer1hidden = (layer2hidden == NO) YES : NO; } 当rootLayer物体在屏幕上显示时,所有所有sublayer层将合并渲染。每类负责自己的层,但是当rootLayer被画到屏幕上的时候,所有layer将合并在一起。 该rootLayer不是可以唯一添加的层。子层可以有自己的子层,这样整个有层次的体系才能被建立。例如,你可以向layer1增加一个层,来显示 下层的组件。例如一个团队的标志。 对层重新定位和调整大小 在层被创建后,你可以移动和调整他的大小,只需简单的改变层的几何属性:frame,bounds,position或者zPosition。 如果一个层的needsDisplayOnBoundsChange属性为YES,当层的bounds改变时层的内容将会被重新缓存。默认情况下,needsDisplayOnBoundsChange属性是NO。 默认情况下,设置frame,bounds,position,anchorPoint和zPosition属性,会让层以动画方式改变到新值。 example: // Create the tach’s background layer tachLayer = [CALayer layer]; tachLayerbounds = CGRectMake(0, 0, 250, 250); tachLayerposition = CGPointMake(200, 500); tachLayercontents = (id)[UIImage imageNamed:@"speedpng"]CGImage; CALayer L1 = [CALayer layer]; L1frame = CGRectMake(0, 0, 100, 100); UIColor c1 = [UIColor redColor]; L1name = @"L1"; [L1 setBackgroundColor:(c1CGColor)]; // 因为layer setBackgroundColor用到的是CGColor所以要进行一次转换 CALayer L2 = [CALayer layer]; L2frame = CGRectMake(50, 50, 100, 100); UIColor c2 = [UIColor blueColor]; L2name = @"L2"; [L2 setBackgroundColor:(c2CGColor)]; CALayer L3 = [CALayer layer]; L3frame = CGRectMake(50, 0, 100, 100); UIColor c3 = [UIColor greenColor]; L3name = @"L3"; [L3 setBackgroundColor:(c3CGColor)]; CALayer L4 = [CALayer layer]; L4frame = CGRectMake(0, 50, 100, 100); UIColor c4 = [UIColor grayColor]; L4name = @"L4"; [L4 setBackgroundColor:(c4CGColor)]; [selfviewlayer addSublayer:tachLayer]; //以上是基本的Layer设定,下面是 *** 作subLayer的例子 [ tachLayer addSublayer: L2]; [ tachLayer addSublayer: L1]; [ tachLayer insertSublayer: L2 atIndex: 1 ]; [ tachLayer insertSublayer: L1 atIndex: 2 ]; [ tachLayer insertSublayer: L2 atIndex: 3 ]; [ tachLayer insertSublayer: L3 atIndex: 1 ]; [ tachLayer insertSublayer: L4 atIndex: 0 ]; [ tachLayer addSublayer: L2]; 执行到此的效果 L2name = @"L2A"; [ tachLayer addSublayer: L2]; [ tachLayer insertSublayer: L3 atIndex: 07 ]; [ tachLayer insertSublayer: L2 below:L1]; [ tachLayer insertSublayer: L3 above:L1]; [ tachLayer insertSublayer: L4 above:L1]; 到此的结果 [ L1 removeFromSuperlayer ]; [ tachLayer replaceSublayer: L3 with:L4 ]; [ tachLayer replaceSublayer: L2 with:L1 ]; L4hidden = YES; L1zPosition = 5; for (CALayer layer in tachLayersublayers) { //for (int i=0;i%@",layername); } 实际剩下的subLayer 2012-12-13 00:33:00733 myTest16[66113:c07] subLayer is =>L1 2012-12-13 00:33:00734 myTest16[66113:c07] subLayer is =>L4

转载于:>

Layer类

Layer类是使用最多的一个,普通的应用程序窗口都会对应一个Layer类,Layer类的内嵌类SurfaceLayer继承了 ISurface接口,创建Layer类时,将会返回一个ISurface接口给创建者。并且,Layer类在创建时会建立两个 GraphicBuffer对象,这两个Buffer在不同的时刻分别被作为frontbuffer和backbuffer,frontbuffer用于 本窗口的画图 *** 作,backbuffer用于所有窗口的混合 *** 作。但是两个GraphicBuffer对象在创建时并没有真正地分配内存,而是在第一次 lockBuffer时才正式通过ISurface接口的requestBuffer方法申请内存,当窗口的大小发生变化时,也要重新分配适合窗口大小的 内存。

Layer类的主要成员函数如下:

Java代码:

createSurface() //返回ISurface接口

setBuffers() //创建两个GraphicBuffer对象,创建ISurface接口的实现类SurfaceLayer

onDraw() //把frontbuffer中的图像数据通过OpenGL混合到OpenGL的主表面中

doTransaction() //检测并处理窗口大小变化

lockPageFlip() //获取frontbuffer,并且生成frontbuffer的OpenGL贴图

finishPageFlip() //unlock frontbuffer,此后该buffer会queue到空闲列表中,下次可以作为backbuffer使用

以上就是关于怎样设置layer.open默认以最大化方式打开全部的内容,包括:怎样设置layer.open默认以最大化方式打开、layerd层不能实现、layui里面的layer模块d窗,强制居中的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9809412.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存