首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyLayout&TangramKit 的重大升级!

很明显UIView类的返回值是默认值,而UILabel和UITextView这些类则重载了这个方法并返回了根据自身内容计算出来的尺寸。...这也就是为什么一般情况下不对UILabel视图设置宽度和高度约束时系统也能正常完成布局。...如果不需要水平滚动则改为将容器视图的宽度等于UIScrollView视图的宽度。通过这样的设置后UIScrollView视图的contentSize将得到自动的计算。...上面的约束设置实现视图滚动的机制也有一定的局限性!那就是一旦在容器视图中添加子视图时就需要重新调整容器视图的右边界和下边界的约束依赖。...因此如果想使用布局视图的尺寸自适应功能,那么在将布局视图的尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图的宽度约束和高度约束了。比如有两个兄弟视图A,B。

2.1K20

iOS滚动视图UIScrollView使用方法

滚动视图还满常见的,这里学习了一下基本所有的用法、属性设置和委托,单讲一个ScrollView也很简单,直接上代码远比一个个讲要清晰明了地多。...中,第二个要滚动才能看见 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 200, 320, 40)];...开始进行拖动时调用 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ } //抬起手指停止拖动时调用,布尔值确定滚动到最后位置时是否需要减速...中添加了一个设置了大小的ScrollView,在ScrollView中添加了两个Label,两个Label的开始y值不同所以第一个一开始就能看见,而第二个要向下滚动才能看见,如图: 由于截图时间来不及所以第二张图看不到滚动条了...,但是是滚动下来才能看得见: 基本方法代码中的注释已经讲的很清楚了,如果有不太清楚的可以自己试着调一下,也可以一起讨论讨论~ 可以在github上下载我的工程:https://github.com/Cloudox

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RunLoop总结:RunLoop的应用场景(三)滚动视图流畅性优化

    在切换到NSDefaultRunLoopMode中,一个runloop循环要解压和渲染18张大图,耗时肯定超过50ms(1/60s)。...关于这一点,我以前的做法是在Cell中定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储在Cell对应的Model中(Model里定义一个属性来存高度),然后在渲染Cell时,...(可能是没用什么太过复杂的计算或算法,时间都很短滑动也顺畅) 其实,更优的做法是:再定义一个ModelFrame对象,在子线程请求服务器接口返回后,转换为对象的同时,也把各个子视图的frame计算好,存在...当你滚动整个屏幕的时候,数以百万计的颜色单元必须以每秒60次的速度刷新,这是一个很大的工作量。...每一个像素点是由三原色组成,例如父视图的颜色和透明度是(Pr,Pg,Pb,Pa),子视图的颜色颜色和透明度是(Sr,Sg,Sb,Sa),那么我们计算这个重合区域某像素点的颜色,需要先分别计算出红、绿、蓝

    2.2K41

    UnityNGUI的使用

    Collider需要交互的UI都要加Collider Botton按钮 Toggle拖拽框 Solider滚动条 Tween动画相关 AtlasMaker图集制作器 FontMaker...,Size图片大小,Aspect宽高比例. 4.Anchors:锚点选择Unified,如果我们的UI在某一个遍或者角,我们锚点不能设置4个方向,在中间的将锚点设置为中间 5.depth:深度值不能相同...,UIPanel深度值优先于元素的深度值 UILabel Overflow字的填充方式 Alignment填充方式 Gradient颜色梯度 Effect字体效果 Spacing间距...MomentumAmount:滑动后自动滑行距离 RestrictWithinPanel:控制panel会不会画出ScrollView UIPopupList Options:设置下拉列表中的元素...; uILabel.fontSize = 60; uILabel.effectStyle = UILabel.Effect.Shadow; 通过委托事件在NGUI中给Texture

    2.1K10

    记一次 contentInsetAdjustmentBehavior 引发的bug

    1 背景 项目中使用到了UILable来展示相关的文本内容,但内容的大小不确定,有可能会超过屏幕的大小,因此需要在外层嵌套一个UIScrollView来保证内容可以被完全展现给用户,在UILabel确定相关的高度后...3 问题的分析 在发现实现的效果没有达到想要的效果后,就开始进入问题的分析排查阶段。...3.2 排查方向二 在发现不是初始y值的影响后,就猜测大概率是父View的影响,仔细查看了父View的设置代码后,发现其并没有设置顶部Top的距离,一行行代码排查后,怀疑是ContentSize的设置引起的...这不科学啊,这个只是用来设置可滚动范围的接口啊,难道是我设置的高度太多了?但在尝试设置了多个不同的高度后,发现都没有解决问题。让我有点怀疑人生了。...scrollableAxes:只调整在可滚动方向的 never : 不调整 always :在调整内容时,自己调整 并且在iOS 11以上的系统,该属性的默认值为always,也就是说在你调整它的contentSize

    82420

    用这些 iOS 技巧让你的 APP 性能更佳

    除此之外,每个 tableViewCell 在滚动期间都需要分配新内存。如果你快速滚动表视图,期间会动态分配许多小块内存,这个过程将使 UI 变得卡顿!...您是否曾体验过,从多任务屏幕恢复应用程序后,该应用程序显示的用户界面与多任务视图中显示的快照有什么不一样? 这是因为应用程序没有实现状态恢复机制,当应用程序在后台被杀死时,显示的数据丢失。...对于在具有较高 QoS 值的队列中分配的任务,操作系统将分配更多的 CPU 时间、CPU 功率和 I/O 吞吐量,这意味着任务将在具有更高QoS值的队列中更快地完成。...在后台线程上修改 UIKit 对象(例如 UILabel 和 UIImageView)可能会产生意想不到的后果,例如UI实际上没有更新,发生崩溃等等。...在 Apple 的 主线程检查器 文章中提及: 「在主线程以外的线程上更新 UI 是一种常见错误,这可能导致 UI 不更新,视觉缺陷,数据损坏以及崩溃。」

    3.2K30

    iOS-自定义View的封装

    view,view拿到模型数据后给内部子控件设置对应的数据 代码封装 新建一个继承UIView的类 在initWithFrame:方法中添加子控件(也可以使用懒加载) 重写模型属性set方法,在set方法中设置模型属性到子控件上...layoutSubviews - addSubview会触发layoutSubviews - 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化 -...滚动一个UIScrollView会触发layoutSubviews - 旋转Screen会触发父UIView上的layoutSubviews事件 - 改变一个UIView大小的时候也会触发父UIView...*)label{ if (_label == nil) { UILabel *label = [[UILabel alloc]init]; [label setBackgroundColor...CGRectMake(shopX, shopY, imageW, imageH); [bgView addSubview:view]; xib封装 新建一个继承UIView的类 新建一个xib文件(xib的文件名最好和控件名一样

    30410

    小问题记录

    更新的流程是这样的:更新时,先在新的路径里安装新程序,然后把旧程序文件夹里的配置文件之类的文件拷贝到新的路径里去,然后删除旧程序 所以,如果数据库里保存的是绝对路径,那么软件会找不到文件。...stringByTrimmingTrailingCharactersInSet:[NSCharacterset whitespaceAndNewlineCharacterSet]]; NSString后连接字符串...init:不会调用layoutSubviews addSubview::被添加的view1、调用这个方法的view2、view2的所有子view都会调用layoutSubviews setFrame:只有在view...val = [points objectAtIndex:0]; CGPoint p = [val CGPointValue]; NSMutableArray/NSMutableDictionary插入空值...; ---- 其他 Cocoapods pod install 太慢 reference pod install --verbose --no-repo-update 标注代码段 reference 在OC

    3.4K21

    Ios常用第三方框架(一)

    MHYahooParallaxView - 类似于Yahoo Weather和News Digest首屏的视差滚动。 SDRefreshView - 简单易用的上拉和下拉刷新(多版本细节适配)。...32位,很久没有更新了。 RTLabel - 富文本,RTLabel支持64位。 TYAttributedLabel - TYAttributedLabel。...用TTTAttributedLabel创建变化丰富的UILabel - 网易新闻iOS版使用。 MLEmojiLabel - 自动识别网址、号码、邮箱、@、#话题#和表情的label。...FXLabel - FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel中。...HHFlashSwitch - 一个另类的UISwitch,选择后,背景水波扩散变色效果。

    5.5K31

    手把手带你撸一个网易云音乐首页(三)

    在我们实际开发过程中,数据请求的操作必不可少,必须要先将数据提供给 ViewModel,然后在数据更新时重新 Reload TableView。...我们知道在 UICollectionView 的属性中,有一个分页的属性:isPagingEnabled,当设置成 true 时,每次滚动的位移量等于它自身 frame 的宽度;当不设置这个分页属性,它的默认值是...记录了滚动的目标位移坐标,通过这个坐标和记录的上次滚动的坐标可以判断出是向左滚动还是向右滚动 如果俩坐标的水平方向相减的绝对值大于某个固定值(譬如说 item 宽度的 8 分之一),则可以判断发生了分页...,然后通过 proposedContentOffset 位移坐标和 item 的宽度大小来计算出当前滚动的页码;如果小于那个固定值,则不发生分页 最后记录最新的偏移坐标,然后返回 UICollectionView...这里就需要来实现 UISearchResultsUpdating 和 UISearchBarDelegate 这俩个代理了,通过 UISearchBar 获取到输入值,然后在提供的数据源中查找,并 reload

    2.3K10

    iOS layout相关方法

    2.addSubview会触发layoutSubviews 3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化 4.滚动UIScrollView会触发...setNeedsLayout 标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用配合layoutIfNeeded立即更新 layoutIfNeeded 如果有需要刷新的标记,立即调用...假设有个UILabel 添加它距离左边的距离约束为left的constraint 值为 10 现在我们想让它距左边的距离以动画形式改变为100 如果这么做 UIView.animateWithDuration...drawRect调用是在Controller->loadView, Controller->viewDidLoad 两方法之后掉用的.所以不用担心在控制器中,这些View的drawRect就开始画了.这样可以在控制器中设置一些值给...View(如果这些View draw的时候需要用到某些变量值). 2、该方法在调用sizeToFit后被调用,所以可以先调用sizeToFit计算出size。

    1.1K10

    iOS 开发仿网易云音乐歌词海报

    设计思路: 解析歌词文件,在界面上用UITableView加载 长按界面,将UITableView切换至可编辑状态 将选中的歌词保存 根据歌词的数量在UIImageView上动态创建UILabel 将UIImageView...效果如下: UITableView控件原生自带了选择功能,所以我这边图省力就先用原生自带的实现歌词选择功能(日后会更新成自定义的), 效果如下: 最后一步就是生成歌词海报了,考虑到图片资源对App...)capInsets resizingMode:(UIImageResizingMode)resizingMode 有人可能会问,为什么不用图形上下文的方式在背景图片上绘制文字,我之前已尝试过但是生成海报后的像素实在是令人捉急...,于是就把这个思路给pass了;后来经过仔细分析,通过在UIImageView中添加subView也就是UILabel,然后通过以下代码生成的海报达到的效果令人满意,代码如下: 最终的效果图如下:...总结 此功能在界面效果和用户体验上离网易还差很远,但是基本的核心已经实现,当然实现这种效果可能有100种方法,欢迎大家来指正,我也很继续更新代码像网易靠拢。

    62330

    iOS UILabe及UIFont用法总结 原

    初始化一个UILabel对象,并初始化大小 UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)...]; 设置显示的文字 label.text=@"123"; 和字体相关的一个类,字号大小默认17 @property(nonatomic,retain) UIFont*font;  //7.0之后可用 ...    label.font=[UIFont preferredFontForTextStyle:UIFontTextStyleCaption2]; //说实话,没看出什么太大的差别 //设置字体和字体大小...CGFloat   leading; //创建一个新字体与当前字体相同,除了指定的大小 - (UIFont *)fontWithSize:(CGFloat)fontSize; //通过描述信息返回字体 7.0后可用...   NSLineBreakByTruncatingHead,    //丢失的文本在末尾显示省略号    NSLineBreakByTruncatingTail,    //丢失的文本在中间显示省略号

    1K30

    【IOS】IOS开发问题解决方法索引(六)

    分辨率414x736,像素1242x2208,@3x 这里所注的都是已经添加相关尺寸loading图后的开发分辨率和像素数,其中iphone6plus最终的物理分辨率会被苹果自动缩放到1080p(缩放比例...中添加子View后,页面控件不显示问题 问题: 在Storyboard的一个ViewController中添加子View后,再在代码中新建一个子View来替代此View,导致在代码中添加按钮控件...19 【UILabel】自适应高度和自动换行 1. //初始化label 2....自适应高度和自动换行 http://blog.csdn.net/csj1987/article/details/6662852 iOS学习5:UILabel的使用 http://bbs.9ria.com...: a9 n(s* n 七度苹果电脑软件 $ U4 a0 _# W* \7N 七度苹果电脑软件 数码测色计界面截图 这个界面大家都能看懂了吧,中间是预览鼠标所处位置得像素,右侧显示颜色RGB值,取点范围大小可以通过滑动条来调节

    87330

    1.注册或登录页面设计:UILabel,UIButton,UITextField

    一.注册或登录界面 如下图,实现了一个注册或登录界面,这里先只介绍单个页面,不介绍点击“完成”按钮后的动作,在之后的系列《iOS开发入门总结》中会逐步介绍,等基础知识介绍的差不多了,就可以以一个完整的注册系统作为小结...UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; //设置Label的位置和大小...shadowOffset = CGSizeMake(1.0,1.0); //设置是否能与用户进行交互 label7.userInteractionEnabled = YES; //设置label中的文字是否可变,默认值是...中文本的行数,其属性值默认为1,用于设置该UILabel只能显示一行文本。...text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动

    2.4K50

    iOS自动布局框架之Masonry

    而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,这样开发起来是很吃力的。...和上面的区别在于,一个代表某个坐标系对象,一个用来获取坐标系对象的值 说明:上面例如equalTo或者width这样的,有时候需要涉及到使用mas_前缀,这在开发中需要注意作区分。...设置了基础数据类型的参数,参数为CGSize的结构体 make.size.mas_equalTo(CGSizeMake(300, 300)); }]; // 为了更清楚的看出约束变化的效果,在显示两秒后更新约束...实现这样的需求,实现方式有很多种,只是实现起来复杂程度和性能的区别。在不考虑性能的情况下,tableView动态Cell高度,可以采取估算高度的方式。...其原理是:在tableView被创建之后,系统会根据estimatedRowHeight属性设置的值,为tableView设置一个估计的值。

    1.1K60

    iOS开发小技巧:根据文本,字体,计算UILabel高度及宽度

    为了计算UILabel的宽度,除了通过NSString自带的boundingRectWithSize的API外,还可以利用sizeToFit对UILabel封装一个分类。 1....需求: 根据字符串,字体,计算UILabel宽度 根据字符串,字体,宽度,计算UILabel高度 2....实现示例: UILabel+Size分类,实现代码 UILabel+Size.h // // UILabel+Size.h // Created by ChenMan on 2018/1/25...调用示例: 场景:在一个UITableViewCell中,重写Cell的一个模型属性的setter方法,需要先对UILabel对象的text属性赋值后,再进行更新布局约束操作。...返回值: 一个矩形,大小等于文本绘制完将占据的宽和高。 练习题:封装一个根据字体,字符串,宽度等参数得到高度的方法?

    5.4K10
    领券