首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MyLayout&TangramKit 的重大升级!

    容器视图实现尺寸自适应 对于一个容器父视图来说,当要实现父视图的尺寸依赖所有子视图的尺寸来实现自适应时,要设置的约束依赖不是通过尺寸约束来实现而是通过位置约束来实现。...假设有如下的布局: 布局界面 我们希望父容器视图S的尺寸是自适应的,那么就需要设置S视图的右边边界等于子视图B的右边边界,同时需要设置S视图的底部边界等于子视图C的底部边界。...要实现UIScrollView滚动时,只需要在一个滚动视图内添加一个布局视图,然后将所有其他子视图都添加到这个布局视图中去,这个和上面的AutoLayout的处理方式是一样的,最后将布局视图的尺寸自适应属性设置为...因此要将一个布局视图添加到采用AutoLayout约束的布局体系时,就像为普通视图一样给布局视图设置约束依赖即可。...A视图是一个MyLayout&TangramKit布局视图,其宽度等于父视图S的宽度,而高度则根据布局视图里面的子视图的高度自适应,而B视图则在A视图的下方,并且宽度等于A视图。

    2.1K20

    iOS中WebKit框架应用与解析 原

    //进行偏好设置 WKPreferences * preference = [[WKPreferences alloc]init]; //最小字体大小 当将javaScriptEnabled...属性设置为NO时,可以看到明显的效果 preference.minimumFontSize = 0; //设置是否支持javaScript 默认是支持的 preference.javaScriptEnabled...config.suppressesIncrementalRendering = NO; //设置HTML5视频是否允许网页播放 设置为NO则会使用本地播放器 config.allowsInlineMediaPlayback...设置为NO则会允许自动播放 config.requiresUserActionForMediaPlayback = NO; //设置是否允许画中画技术 在特定设备上有效 config.allowsPictureInPictureMediaPlayback...,例如加载,回退,前进,刷新等,在这个方法中,必须执行decisionHandler()代码块,并将是否允许这个活动执行在block中进行传入 */ /* WKNavigationAction是网页动作的抽象化

    2K40

    手把手教你读懂源码,View的绘制流程详细剖析

    调用 performDraw方法 其执行的过程可简单的概括为:是否需要重新计算视图的大小(measure)、是否需要重新布局视图的位置(layout),以及是否需要重绘(Draw),也就是我们常说的...当匹配父容器时,测量模式为MeasureSpec.EXACTLY,测量大小直接为屏幕的大小,也就是充满真个屏幕; 当包裹内容时,测量模式为MeasureSpec.AT_MOST,测量大小直接为屏幕大小,...也就是充满真个屏幕; 其他情况时,测量模式为MeasureSpec.EXACTLY,测量大小为DecorView顶层视图布局设置的大小。...当前视图是否设置有最小宽度和高度。如果设置有的话,并且它们比前面计算得到的宽度maxWidth和高度maxHeight还要大,那么就将它们作为当前视图的宽度和高度值。 2. 当前视图是否设置有前景图。...View类的setFrame方法 该方法先判断当前视图的大小或者位置是否发生变化,将参数保存起来。当前视图距离父视图的边距一旦设置好之后,它就是一个具有边界的视图了。

    1.3K100

    为什么你的自定义View wrap_content不起作用?

    wrap_content与match_parent区别: 1. wrap_content:视图的宽/高被设定成刚好适应视图内容的最小尺寸 2. match_parent:视图的宽/高被设置为充满整个父布局...MeasureSpec的specSize被设置成parenSize = 父容器当前剩余空间大小 所以:wrap_content起到了和match_parent相同的作用:等于父容器当前剩余空间大小 -...答: 如果没设置默认值,就继续往上层VIew充满大小,即从父View的大小等于顶层View的大小(),那么子View的大小 = 父View的大小 如果设置了默认值,就用默认值。...View为AT_MOST、View为match_parent时,该View的match_parent的效果就等于wrap_content 如果没设置默认值,就继续往上层VIew充满大小,即从父View...的大小等于顶层View的大小(),那么子View的大小 = 父View的大小 如果设置了默认值,就用默认值。

    2.4K30

    WKWebView详解

    您可以使用WKWebView类来在应用程序中嵌入web内容,通过创建一个WKWebView对象,将其设置为视图,并发送一个请求来加载web内容。...; 在iOS上,这个属性只在支持3D Touch的设备上支持 在iOS 10及以后的系统版本默认值是YES,之前的默认值是NO 如果将该属性的值设置为YES,则iOS用户可以按下链接来预览链接,并可以检测到地址和电话号码等数据...是否应该总是允许网页的缩放 @property(nonatomic) BOOL ignoresViewportScaleLimits; 将此属性设置为TRUE可以使页面被缩放,无论页面的意图是什么 设置为...javaScriptEnabled; 默认值YES 设置为NO将会禁用页面加载的或执行的JavaScript 但这个配置不会影响用户的script 是否可以在没有用户操作的情况下自动打开窗口 @property...该frame是否是该网页的main frame或者子frame @property(nonatomic, readonly, getter=isMainFrame) BOOL mainFrame; frame

    20.7K193

    Android中文API——ScrollView

    params) 根据指定的layout参数添加子视图 参数 child 所添加的子视图 index 添加子视图的位置 params 为子视图设置的layout参数 public void...参数 child 所添加的子视图 params 为子视图设置的layout参数 public boolean arrowScroll (int direction) 响应点击上下箭头时对滚动条滚动的处理...参数 changed       当前视图的新的大小或者位置 l     相对父视图,左边界位置 t     相对父视图,上边界位置 r     相对父视图,右边界位置 b    相对父视图,...所以调用父类的onMeasure(int, int)方法是必须的。 父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。...如果只是添加到视图,调用时显示的是旧值0。(译者注:也就是添加到视图时,oldw和oldh返回的是0)。

    4.6K30

    Android自定义View:为什么自定义View wrap_content不生效?

    wrap_content与match_parent区别: wrap_content:视图的宽/高被设定成刚好适应视图内容的最小尺寸 match_parent:视图的宽/高被设置为充满整个父布局 (在Android...MeasureSpec的specSize被设置成parenSize = 父容器当前剩余空间大小 所以:wrap_content起到了和match_parent相同的作用:等于父容器当前剩余空间大小 5...是AT_MOST、View的属性设置为match_parent时 如果还是按照上述的做法,当父View为AT_MOST、View为match_parent时,该View的match_parent的效果不就等于...答: 如果没设置默认值,就继续往上层VIew充满大小,即从父View的大小等于顶层View的大小(),那么子View的大小 = 父View的大小 如果设置了默认值,就用默认值。...View为AT_MOST、View为match_parent时,该View的match_parent的效果就等于wrap_content 如果没设置默认值,就继续往上层VIew充满大小,即从父View的大小等于顶层

    96621

    HarmonyOS学习路之开发篇—Java UI框架(六大布局开发)

    ,添加到这个布局中的视图都是以层叠的方式显示,而它会把这些视图默认放到这块区域的左上角,第一个添加到布局中的视图显示在最底层,最后一个被放在最顶层。...上一层的视图会覆盖下一层的视图。 自有XML属性: 属性名称 属性描述 使用案例 layout_alignment 对齐方式 可以设置取值项如表中所列,也可以使用“|”进行多项组合。...,TableLayout剩余的行数和列数必须大于等于该子组件所设置的行数和列数。...该布局中的每个子组件都用一个单独的“盒子”装起来,子组件设置的布局参数都是以盒子作为父布局生效,不以整个自适应布局为生效范围。...自适应仅在水平方向进行了自动分块,纵向没有做限制,因此如果某个子组件的高设置为match_parent类型,可能导致后续行无法显示。

    1.4K10

    iOS界面布局的核心以及TangramKit介绍

    视图的尺寸和位置 视图的尺寸 视图的尺寸就是指视图矩形块的大小,为了表征视图的大小我们称在屏幕水平方向的尺寸大小为宽度,而称在屏幕垂直方向的尺寸大小为高度,因此一个视图的尺寸我们就可以用宽度和高度两个维度的值来描述了...某个视图的尺寸依赖于所在父视图的尺寸减去其他兄弟视图所占用的尺寸的剩余尺寸也就是说尺寸等于父视图的尺寸和其兄弟视图尺寸的差集,我们称这种依赖为填充(fill)。...为了灵活处理和计算,视图的尺寸可以设置为绝对值类型,也可以设置为相对值类型,也可以设置为特殊的包裹或者填充值类型;视图的位置则可以指定视图中的任意的方位,以及设置这个方位的点在窗口坐标系或者父视图坐标系或者兄弟坐标系中的坐标值...子视图A的左边距占用父视图宽度的20%,而右边距则占用父视图宽度的30%,高度则等于自身的宽度。 子视图B的左边距是40,宽度则占用父视图的剩余宽度,高度是40。...也就是尺寸的大小是由子视图或者视图的内容共同决定的,这样视图的尺寸将依赖其内部的子视图的尺寸或者子视图内容的大小。

    2.2K30

    iOS的MyLayout布局体系--浮动布局MyFloatLayout

    且每种布局的子视图的约束机制不一样:线性布局MyLinearLayout、表格布局MyTableLayout、流式布局MyFlowLayout、浮动布局MyFloatLayout这四种布局的子视图之间的约束是通过添加到父布局的先后顺序来决定的...在默认情况下当我们建立的是一个左右浮动布局时,我们添加到布局里面的所有子视图默认都是向左浮动的,而当建立的是一个上下浮动布局时,我们添加到布局里面的所有子视图默认都是向上浮动的,因此当需要改动子视图浮动的方向则可以设置属性...视图的扩展属性clearFloat也是一个BOOL类型,表示是否清除浮动,默认值是NO表示不清除浮动,当某个子视图需要有清除浮动的效果时,请将这个属性设置为YES。...上面分别的介绍了浮动布局的建立,以及子视图的扩展的属性设置来实现视图在浮动布局中的浮动方式、是否清除浮动、以及比重的设置方法。...同时我们还支持子视图的宽度扩展属性widthSize的值可以设置为一个具体值,也可以等于布局视图的宽度,以及前面已经布好局的子视图的宽度,甚至还可以等于子视图的高度。

    1.1K30

    Android组件View绘制流程原理分析

    类的performTraversals()方法,该方法完成的工作主要是: 根据之前的状态,判定是否重新计算测试视图大小(measure)、是佛重新放置视图位置(layout)和是否重新重绘视图(draw...meause中,父组件传给子组件的一般都是一个组合尺寸,我们可以拿出具体尺寸然后根据其他条件产生一个新的尺寸值,将这个值用setMeasuredDimension设置mMeasuredWidth和mMeasuredHeight...,父View希望子View的大小最多是specSize指定的值;MeasureSpec.UNSPECIFIED //未指定模式,父View完全依据子View的设计值来决定; View的measure方法是...View的布局大小由父View和子View共同决定。...凡是layout_XXX的布局属性基本都针对的是包含子View的ViewGroup的,当对一个没有父容器的View设置相关layout_XXX属性是没有任何意义的(前面《Android应用setContentView

    1.2K40

    CSS中的float定位技术在iOS上的实现

    就以某些不规则的界面来说,表面上看起来杂乱无章实际仍然是有一些规律可循的:视图之间展示的关系是按添加到父视图的先后顺序并且只和自己的尺寸以及父视图的尺寸有关。...在默认情况下当我们建立的是一个左右浮动布局时,我们添加到布局里面的所有子视图默认都是向左浮动的,而当建立的是一个上下浮动布局时,我们添加到布局里面的所有子视图默认都是向上浮动的,因此当需要改动子视图浮动的方向则可以设置属性...视图的扩展属性clearFloat也是一个BOOL类型,表示是否清除浮动,默认值是NO表示不清除浮动,当某个子视图需要有清除浮动的效果时,请将这个属性设置为YES。...浮动布局的包裹属性 上面分别的介绍了浮动布局的建立,以及子视图的扩展的属性设置来实现视图在浮动布局中的浮动方式、是否清除浮动、以及比重的设置方法。...同时我们还支持子视图的宽度扩展属性widthSize的值可以设置为一个具体值,也可以等于布局视图的宽度,以及前面已经布好局的子视图的宽度,甚至还可以等于子视图的高度。

    2.2K20

    iOS开发之Masonry框架源码解析

    也就是子视图的top与父视图的top中间隔着10个pt。 1. 使用NSLayoutConstraint添加约束 下方这段代码就是给subView添加了一个相对于superView的Top约束。...寻找两个视图的公共父视图对于约束的添加来说是非常重要的,因为相对的约束是添加到其公共父视图上的。...的对象,并将该对象添加到相应的视图中。...创建完约束对象后,我们要寻找该约束添加到那个View上。下方的代码段就是获取接收该约束对象的视图。如果是两个视图相对约束,就获取两种的公共父视图。...如果添加的是Width或者Height,那么久添加到当前视图上。如果既没有指定相对视图,也不是Size类型的约束,那么就将该约束对象添加到当前视图的父视图上。代码实现如下: ?

    1.2K80

    iOS UI控件了解一下

    创建view的步骤如下: ①开辟空间并初始化视图(初始化时,给出视图位置和大小) ②对视图做一些设置(比如:背景颜色) ③将视图添加到window上进行显示 ④释放视图对象 视图创建代码: UIView...当一个view设置bounds时,会把自己当成一个容器,定义自己的边界大小以及左上角的初始坐标。当子视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,而非左上角。...①开辟空间并初始化(如果本类有初始化方法,使用自己的;否则使用父类的)。 ②设置文本控制相关的属性。 ③添加到父视图上,用以显示。 ④释放。...①开辟空间并初始化(如果本类有初始化方法,使用自己的;否则使用父类的); ②设置文本显示、输入相关的属性; ③添加到父视图上,用以显示; ④释放; 3)UITextField...①创建button对象(如果本类有初始化方法,使用自己的;否则使用父类的); ②设置按钮显示相关的属性; ③为按钮添加点击事件; ④添加按钮到父视图上

    2.6K20
    领券