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

UIButton实现各种图文结合的效果以及原理

事件总是能找到解决方法的, 有的人会先建立一个按钮控件铺在下面,而在上面分别覆盖一个UIImageView和UILabel来实现;而有的人则干脆在UIButton上建立一个UIImageView和UILabel...答案是否定的,其实UIButton本身是可以支持各种图文结合的,既然UIButton上能同时显示图片和文字,那就可以肯定的说UIButton里面本身一定有一个UIImageView和UILabel8子视图...的值调整文本和图片的位置。...而文本则要调整为距离顶部的间隔值,也就是新的文本的顶部值等于padding, 而原来顶部值是titleRect.origin.y,因此只需要偏移titleRect.origin.y - padding就可以了...//图片在左,文字在右,距离按钮两边边距 }; @interface UIButton (ImageTitleStyle) /* 调整按钮的文本和image的布局,前提是

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

    关于 vertical-align 你应该知道的一切

    top 与 bottom 对于内联元素,指的是元素的顶部(底部)和当前行框盒子的顶部(底部)对齐;即与 line-box 的顶部(底部)对齐。...对于 table-cell 元素,指的是元素的顶 padding 边缘和表格行的顶部对齐。 基本效果如下图: ? middle 这个属性值用得比较多。...文本类 “text-top,指的是盒子的顶部和父级内容区域的顶部对齐,即与 content-area 顶部对齐。...产生这种现象的原因:空白节点、line-height 和 vertical-align 属性;图片后放置空白节点 X,会发现图片的基线是元素底部,与“空白节点”的基线对齐,那解决这种问题有以下几个方法...2、“空白节点” 可以受具有继承特性的 CSS 属性影响,于是,我们可以通过其他东西来做调整,让字符的中线和字符内容中心线在一起,或者说在一个位置上就可以了。

    2.8K20

    Cell 动态行高文字显示不全问题探索

    self.gTV.estimatedRowHeight = 90; self.gTV.rowHeight = UITableViewAutomaticDimension; 自动布局,又叫 autolayout,为了使文本可以多行显示...,需要保证如下设置: 设置 label 的 numberoflines 为 0 对 label 进行上左下右的完整约束 在项目实现过程中,遇到了文本内容被截断最后一行一小部分,无法完全显示的问题。...在 cell 显示之前,setFrame 生效,此时,cell 在之前预估行高的基础上,根据约束重新布局,舍弃了内容 label 的高度约束,导致内容显示不全。...当我们把底部约束的优先级降低到 Low 时,cell 在之前预估行高的基础上,根据约束重新布局,舍弃的就是低优先级的底部约束了,因此才能看到低优先级底部约束开始生效,后来因 setFrame 减小了高度...),来实现想要的文本多行显示效果。

    2.3K00

    《Motion Design for iOS》(十五)

    从UIKit和CoreAnimation开始 通常情况下,iOS app中屏幕上的物体都是UIView对象。它们是矩形的并且有坐标和大小来定义它们在屏幕上的位置和尺寸。...每个视图都可能伴随着文本、形状或图片绘制。...包括作为界面按钮的UIButton、用来显示图片的UIImageView、显示文本的UILabel和显示列表的UITableView。你也可以通过绘制任何你想要的东西来完全自定义UIView。...中的帖子标题 评论数量UIButton,由一个评论气泡图和评论的数量组成 显示帖子URL的UILable UILabel中显示帖子的点值和子板 如果你不熟悉iOS用户界面开发,看看一些你喜欢的app...在屏幕上布局,靠近或在其他视图的顶部,还可能会有高级的透明效果来整合到一起或者快速绘制。像你想象的一样,让大量的视图在屏幕上移动确实是一个挑战,尤其是在一个小的,低功率的设备上。

    85640

    Cell 动态行高文字显示不全问题探索

    self.gTV.estimatedRowHeight = 90; self.gTV.rowHeight = UITableViewAutomaticDimension; 自动布局,又叫 autolayout,为了使文本可以多行显示...,需要保证如下设置: 设置 label 的 numberoflines 为 0 对 label 进行上左下右的完整约束 在项目实现过程中,遇到了文本内容被截断最后一行一小部分,无法完全显示的问题。...在 cell 显示之前,setFrame 生效,此时,cell 在之前预估行高的基础上,根据约束重新布局,舍弃了内容 label 的高度约束,导致内容显示不全。...当我们把底部约束的优先级降低到 Low 时,cell 在之前预估行高的基础上,根据约束重新布局,舍弃的就是低优先级的底部约束了,因此才能看到低优先级底部约束开始生效,后来因 setFrame 减小了高度...),来实现想要的文本多行显示效果。

    1.9K20

    iOS开发笔记(十)— Xcode、UITabbar、特殊机型问题分析

    = [UIColor whiteColor]; 问题3、tabbar顶部的线条问题 【问题表现】UITabbar默认在tabbar的顶部会有一条灰色的线,但是并没有一个属性可以修改其颜色。...【问题解决】将shadowImage用一张空白的图片替代,然后自己再添加想要的线条大小和颜色。...富文本排版异常 【问题表现】有一段文本的显示需要设置首行缩进,所以用的富文本添加段落属性的方式;但是在iOS 10.3的6p机型上出现异常现象,如下: 测试文本:contentStr=@"一年佛山电脑放山东难道是防空洞念佛..." 如下,最后的字符没有显示完全。...实现方式是计算得到富文本,然后赋值给UILabel,再调用-sizeToFit的接口。 ? 以上的问题仅在一行的时候出现异常,两行又恢复正常。 ?

    1.3K20

    创建华丽 UI 的 7条规则 第一部分 (2019年更新)

    当光从天空而来时,它照亮事物的顶部,并在其下方投射阴影,物体的顶部比较亮,底部比较暗。...未点击的按钮顶部的 亮度略高于底部。这是因为它模仿了一个稍微弯曲的表面,就像你需要把面前的镜子倾斜才能看到太阳一样,倾斜的表面会把更多的阳光反射到你身上。...嵌套控制面板的上边缘投射一个微小的阴影 * “ON” 滑块轨道也跟着设置了一些阴影 * “ON” 滑块表面是凹的,底部会反射更多光线 顶部的边框颜色比较其它的深点,这代表一个垂直于光源的表面,因此接收到大量的光...规则三:加倍你的空白 (Double your whitespace) 在规则 2 中,黑色优先 迫使设计师在考虑颜色之前考虑间距和布局,接下来谈谈间距和布局了。...Piotr 认真考虑在这里增加更多的空白,并且效果很好。尽管这只是它为了更多乐趣(据我所知),就美学而言,它非常漂亮,能够和市面上最好的音乐播放器UI界面相提并论。

    1.2K40

    iOS中支持HTML文本的标签控件——MDHTMLLabel

    iOS中支持HTML文本的标签控件——MDHTMLLabel 一、引言         在iOS开发中对HTML的处理很多时候除了使用WebView外,还需要原生的控件对其进行渲染,例如将HTML字符串渲染为图文混排的...MDHTMLLabel:与RTLabel和RCLabel不同的是,其是UILabel的子类,更加轻量级,不能支持图片标签。...注:非高亮状态的由原生UILabel的属性设置 @property (nonatomic, assign) CGFloat highlightedShadowRadius; //设置label在高亮状态下的文字阴影偏移...注:非高亮状态的由原生UILabel的属性设置 @property (nonatomic, assign) CGSize highlightedShadowOffset; //设置在label高亮状态下的文字阴影颜色...MDHTMLLabelVerticalAlignmentCenter = 0, //居中对其 MDHTMLLabelVerticalAlignmentTop = 1, //顶部对其

    3K10

    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之后可用 ...NSLineBreakByCharWrapping,    //简单线性处理    NSLineBreakByClipping,    //丢失的开头用省略号表示    NSLineBreakByTruncatingHead,    //丢失的文本在末尾显示省略号...   NSLineBreakByTruncatingTail,    //丢失的文本在中间显示省略号    NSLineBreakByTruncatingMiddle };typedef NSUInteger...   UIBaselineAdjustmentAlignBaselines,    //调整文本相对其边框的中心    UIBaselineAdjustmentAlignCenters,    //调整文本相对于边界的左上角

    1K30

    深入详解iOS适配技术

    UIViewAutoresizingFlexibleHeight // 自动弹性的调整自己的高度,保证与superView顶部和底部的距离不变。...Snip20160515_3.png 4.如果view的约束只和自己有关系,那么添加到自己身上。比如宽高约束。 UILabel使用AutoLayout UILabel默认内容的显示方式是垂直居中的。...原因在于,UILabel是根据内容自动调整宽度和高度,如果没有内容,那么宽度和高度就是0,导致UILabel无法显示。...regular(正常)、any(任意)我们只要针对于某一类型的屏幕进行布局,那么布局出来的界面可以显示在属于该类型的所有尺寸的屏幕上。...并且,在iPad开发时,针对于同一界面,我们通常需要对横竖屏的iPad分别进行布局,此时也可以使用sizeClass,我们只需要切换storyBoard底部的sizeClass就可以布局初互不干扰的界面

    8.5K70

    关于 CSS margin,一些让你模糊的点

    margin 重叠意味着,当一个有底部margin的标题后面跟着一个有顶部 margin 的段落时,它们之间就不会出现较大的空白。...除了下面提到的情况之外,如果有两个元素在正常流中依次显示,那么第一个元素的底部 margin 将与下面元素的顶部 margin 一起重叠。 在下面示例中,有三个div元素。...第一个 div 的顶部和底部的margin都是50px。第二个 div 的顶部和底部 margin 都是20px。第三个 div 的顶部和底部 margin 都是3em。...如果出于语义目的而对元素进行包装,但这些元素不显示在屏幕上,那么你可能不希望它们在显示中引入大的 margin。当web主要是文本时,这很有意义。...因此,当我们讨论垂直边距时,我们实际上是在讨论块维度的边距。如果我们在水平写作模式下,这些 margin 将是顶部和底部,但在垂直写作模式下,这些 margin 将是右侧和左侧。

    1.3K20

    关于css margin,你需要知道的一切

    margin 重叠意味着,当一个有底部margin的标题后面跟着一个有顶部 margin 的段落时,它们之间就不会出现较大的空白。...除了下面提到的情况之外,如果有两个元素在正常流中依次显示,那么第一个元素的底部 margin 将与下面元素的顶部 margin 一起重叠。 在下面示例中,有三个div元素。...第一个 div 的顶部和底部的margin都是50px。第二个 div 的顶部和底部 margin 都是20px。第三个 div 的顶部和底部 margin 都是3em。...如果出于语义目的而对元素进行包装,但这些元素不显示在屏幕上,那么你可能不希望它们在显示中引入大的 margin。当web主要是文本时,这很有意义。...因此,当我们讨论垂直边距时,我们实际上是在讨论块维度的边距。如果我们在水平写作模式下,这些 margin 将是顶部和底部,但在垂直写作模式下,这些 margin 将是右侧和左侧。

    1.3K40

    有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

    其实我也很希望自家的应用都像网易那样,固定长度显示新闻,显示不完,就直接截断--可惜那样的应用都是别人公司的应用.可能你会说: 顶部给个非微博正文区域给个固定高度;文字区域动态计算出高度;图片部分,图片高度固定...你确定自己的应用不希望大屏上一样能显示更多的图片?你确定老板不是盘算着 iPad版也交给你维护?...在 tableView:heightForRowAtIndexPath: 中计算高度时,是有坑的,对于刚接触iOS的攻城狮来说,几乎是难以理解的诡异问题.这里简单说两个,其他的大家可跟帖补充: 1.文字高度计算时...误差刚好是绝对换行与不换行的分界值,因为0.01的误差,可能计算出来的高度就不足以显示最后几个文字.为了安全起见,如果需要计算文本高度,我都是加上一个额外的0.1来保证最后一行肯定可以显示. 2.手动调用...:关于如何让左侧图片底部总是不被遮盖.

    92260

    强大的ConstraintLayout:使用ConstraintLayout打造响应式UI

    -- 设计师要求:两边的线随名字自适应,右边最小边距为15dp,字体更多就缩小线的宽度,线的最小宽度为30dp,字再长就省略 --> 显示,线以最长的宽度显示,两边有空白 --> 显示,线显示部分(在 30dp - 60dp 之间) --> <!...放出最终效果图,用户名的那个行的效果: [用户名不长的情况,用户名和装饰线完整显示] [用户名比较长的情况,完整展示用户名,装饰线宽度在30dp~60dp之间浮动] [用户名特别长的情况,装饰线宽度以30dp...[顶部和底部均为`gone`,6.3'' 1440 x 2960 (Pixel 3 XL, 560dpi)] 顶部和底部均为gone,这回中部区域效果就不如预期般同时拓展到顶部和底部了,从右侧看,描述1...约束关系的指定,只能指向一个,对这个场景而言,变成了两个:在顶部/底部区域可见时,约束指向顶部/底部区域;在顶部/底部区域不可见时,约束指向父布局。 如何做到指向多个约束关系?

    3K21

    前端性能优化—将CSS文件放在顶部

    CSS文件放置在head中和放在body底部,对CSS本身的下载时间不会有影响,但对页面的呈现有非常大的影响,与用户体验密切相关。...CSS文件放在顶部的原理: 1) CSS的下载是按照其在文档中出现的顺序进行的,所以很容易想到将不需立即使用的CSS,如弹出框CSS,放在底部,这似乎可以得到一个加载很快的页面。...然而这其实是错误的,IE8及以下浏览器的工作方式是:为了避免样式变化导致页面重绘or重排,会阻塞内容呈现,在所有CSS加载并解析完之前不会呈现内容,导致整个浏览器显示空白,出现“白屏”(浏览器呈现过程:...2)将CSS放在底部,页面可以逐步呈现,但在CSS下载并解析完毕后,已经呈现的文字和图片就要需要根据新的样式重绘,这是一种不好的用户体验。...测试实例: 将CSS文件放在顶部和放在底部,观察Network中的Time比较页面全部渲染完毕的用时长短。

    89120

    Flutter 双向聊天列表效果进阶优化

    ,但是这时候又有网友提出了新的问题: image 如下动图所示,可以看到虽然列表在添加新数据后虽然没有发生跳动,但是在列表数据长度足够的情况下,顶部会有一篇空白。...image 如下代码所示,这个问题的起因正是在解决跳动问题而增加的 center ,因为列表是 reverse ,并且红色的 SliverList 长度只有 3 条,高度不够导致顶部留空白。...center 往上的高度还是不够,所以就出现了黄色 SliverList 顶部空白的问题; image 结合这个问题,这里可以发现关键的点就在于 reverse ,而对比微信和QQ的聊天列表需求...image 如下图所示,调整后从结构上变成了右边的逻辑: 数据起始锚点在页面顶部,所以不会存在顶部留空问题; 在 center 下面的 SliverList 按照正向排序正常显示,用于显示新数据; 在...image 是的,我们其实是把顶部留空的问题转移到了底部,但是这个问题在实际业务场景是不成立,进入聊天列表首先就需要先加载满一页的数据,所以: 如果 old 数据本来就不够,例如例子里只有3条,那也就不会有加载更多

    65340
    领券