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

与UILabel字体高度大小相同的UIImageView高度。在UIStackView内部居中

在UIStackView内部居中的UIImageView高度与UILabel字体高度大小相同,可以通过以下步骤实现:

  1. 创建一个UIStackView,并将其添加到父视图中。
  2. 在UIStackView中添加一个UILabel和一个UIImageView。
  3. 设置UILabel的字体大小为所需的大小。
  4. 使用Auto Layout约束来确保UIImageView的高度与UILabel的字体高度相同。
    • 可以使用等高约束将UIImageView的高度与UILabel的高度相等。
    • 可以使用约束乘法关系将UIImageView的高度设置为UILabel的高度乘以一个常数值。
  • 设置UIStackView的alignment属性为.center,以使其内部的视图在垂直方向上居中对齐。

以下是一个示例代码,演示如何实现上述效果:

代码语言:txt
复制
// 创建UIStackView
let stackView = UIStackView()
stackView.axis = .vertical
stackView.alignment = .center
stackView.spacing = 10

// 创建UILabel
let label = UILabel()
label.text = "Hello World"
label.font = UIFont.systemFont(ofSize: 20)

// 创建UIImageView
let imageView = UIImageView()
imageView.image = UIImage(named: "image")

// 将UILabel和UIImageView添加到UIStackView中
stackView.addArrangedSubview(label)
stackView.addArrangedSubview(imageView)

// 设置UIImageView的高度与UILabel的字体高度相同
imageView.heightAnchor.constraint(equalTo: label.font.lineHeight).isActive = true

// 将UIStackView添加到父视图中
parentView.addSubview(stackView)

// 使用Auto Layout约束来布局UIStackView
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.centerXAnchor.constraint(equalTo: parentView.centerXAnchor).isActive = true
stackView.centerYAnchor.constraint(equalTo: parentView.centerYAnchor).isActive = true

在这个示例中,我们创建了一个UIStackView,并在其中添加了一个UILabel和一个UIImageView。通过设置UILabel的字体大小和UIImageView的高度约束,我们确保了UIImageView的高度与UILabel的字体高度相同。最后,我们将UIStackView添加到父视图中,并使用Auto Layout约束来居中显示。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS AutoLayout全解

像label 默认是有宽度的 宽度就是字体自适应的。这样我们就可以不给UIlabel 高度 把Label的NumberOfline = 0就可以自适应高度了。 ?...高度 AutoLayout with UILabel 创建一个空的xib,命名为C1.xib, 然后拖入一个UITableViewCell控件。...StackView属性 在理解StackView时,有几个属性需要理解: Axis: 这个属性是改变UIStackView中的排布方式的属性,其中有水平排布与垂直排布 Alignment:这个属性是其中子视图的位置摆布方式默认是填充摆布...Fill:子视图填充他所在的位置(默认) Leading:子视图头部对齐 Center:子视图居中对齐 Trailing:子视图尾部对齐 Distribution:子视图的大小 Fill:子视图填充整个...UIStackView Fill Equally:子视图填充空白区域并等分 Fill Proportionally:按照目前相对位置进行填充 Equal Spacing:等间距 Spacing设置子视图之间的间距大小

4.6K60

制作一个类似苹果VFL(Visual Format Language)的格式化语言来描述类似UIStackView那种布局思路,并解析生成页面

在项目中总是希望页面上各处的文字,颜色,字体大小甚至各个视图控件布局都能够在发版之后能够修改以弥补一些前期考虑不周,或者根据统计数据能够随时进行调整,当然是各个版本都能够统一变化。...AssembleView(组装视图)和PartView(零件视图) 在设计格式化语言之前需要对布局做个统一思想进行管理,在看了WWDC里关于UIStackView的介绍后感觉任何复杂的布局都能够通过这样一种组合排布再组合排布的思路特别适合用格式化语言来描述...PartView布局相关属性 width:UILabel和UIImage这样有固定大小的可以不用设置,会按照固定大小的来。 height:有固定大小的可以不用设置。...PartView视图控件相关设置 通过以下属性即可生成对应的UILabel,UIImageView或者UIButton等控件视图,而不用特别指出需要生成哪种控件视图 text:设置文字内容 font:...设置字体,可以带入一个UIFont,也可以直接设置一个字体大小,解析时会判断类型。

95020
  • iOS---设置控件的内容模式

    = 1, // 居中对齐 NSTextAlignmentRight = 2, // 右对齐 哪些控件有这个属性 :一般能够显示文字的控件都有这个属性 UITextField UILabel UITextView...2. contentVerticalAlignment : 内容的垂直方向的对齐方式 取值 UIControlContentVerticalAlignmentCenter = 0, // 居中对齐..., 图片都会拉伸 // (默认)拉伸图片至填充整个UIImageView(图片的显示尺寸会跟UIImageView的尺寸一样) UIViewContentModeScaleToFill, // 按照图片原来的宽高比进行伸缩..., 伸缩至适应整个UIImageView(图片的内容不能超出UIImageView的尺寸范围) UIViewContentModeScaleAspectFit, // 按照图片原来的宽高比进行伸缩, 伸缩至...图片的宽度和UIImageView的宽度一样 或者 图片的高度和UIImageView的高度一样 UIViewContentModeScaleAspectFill, // 后面的所有情况, 都会按照图片的原来尺寸显示

    920120

    UI篇-CATextLayer和 富文本的交融

    而NSMutableAttributedString有可以最自己内容作出颜色以及大小的调整,这样结合起来使用的话,就远比UILabel 灵活的多,效果也酷炫的多,也许CATextLayer就是为了NSMutableAttributedString...不是 UIFont lary.fontSize = 12.f;//字体的大小 lary.alignmentMode = kCAAlignmentCenter;//字体的对齐方式...retina,设置如下代码即可: */ CATextLayer与 CAGradientLayer(渐变图层)结合,[金闪闪动画字体] ?...在使用中通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。有属性的控件有UILabel、UITextField和UITextView。...,我想你一定用不到它 - - //NSVerticalGlyphFormAttributeName 水平或者竖直文本 1竖直 0水平 在iOS没卵用,不支持竖版 2.设置段落样式:段落样式中允许你设置文字与文字之间的行间距

    2.6K10

    iOS设置圆角及圆形图片

    大概思路如下: View都有一个layer的属性,我们正是通过layer的一些设置来达到圆角的目的,因此诸如UIImageView、UIButton、UILabel等view都可以设置相应的圆角。...对于圆形的头像,要制作正圆,我们需要首先设置UIImageView的高宽的一致的,然后我们设置其圆角角度为高度除以2即可,相当于90度,代码如下: // 圆形头像 UIImageView *avatarImgView...,我们同样设置角度为高度的一般,这样可以在两边形声半圆,而由于宽度与高度不同,所以不是正圆: // 完全半圆圆角的按钮 UIButton *btnOne = [[UIButton alloc] initWithFrame.../ 2; [self.view addSubview:btnOne]; 对于第三个小圆角的按钮,我们直接设置圆角的圆度为一个数即可,数的大小决定了按钮圆角的样式,这里我们设为4: // 小圆角的按钮...:btnTwo]; 第四个label,我们先要添加边框,我们设置边框宽度为1,就可以显示边框了,然后同样设置圆角为4: // 带边框的圆角Label UILabel *label = [[UILabel

    1.9K20

    iOS 布局进阶:你真的会用 autolayout 么?

    在现如今的开发中,个人还是提倡使用自动布局(比如UITableview的高度自适应用法),以减少大量的UI计算,然而很多开发者可能写出的自动布局一点也不自动。...一个View的约束确定需要两个东西,一个是位置,一个是大小。在日常开发中,我们发现给UILabel、UIImageView、UIButton实例写约束的时候,只需要给他们位置,而不需要给大小。...这是因为它们指定了intrinsicContentSize(可以理解为内部通过内容计算出了一个合理的大小,我们可以不用指定它)。...,而且可以通过intrinsicContentSize属性获取内部计算过后的大小。...实现:Label距离左边10,纵向居中,距离右边小于等于10 优先级 优先级就是在两个约束冲突的时候,优先满足优先级高的约束。 example: ?

    1.4K50

    声明式 UIKit 在有赞美业的实践

    在 iOS 9 之后,UIKit 提供了 UIStackView 就是通过类似 FlexBox 的形式,接管视图之间的布局规则,减少对视图的的操作,来达到快速布局的效果。...当位置和大小被布局接管后,视图之间的依赖没有了,转化为添加视图的顺序和各自的属性,会发现声明式的API在布局系统中能非常好地契合。...代码结构即 UI 结构 UI 节点相互独立,可移植性高 布局规则与 UI 视图分离,高度灵活可定制 二、实现 想要实现 UIKit 使用声明式的布局方式,首先要解决布局问题。...我们知道,布局进行抽象后,其实就是对节点的位置和大小的计算,与视图没有任何的关系,基于这个问题,其实算法是可以抽离的,使用 C++ 不仅性能高,还可以跨平台。...为此我们引入了 State ,通过 View 在声明过程中与 State 进行绑定。

    1.4K30

    六天完成一个简单iOS App - 第二天

    第一步与controller创建关联 第二步: ? 与view创建关联 如果xib是在创建controller的同时就创建好了的,系统会自动帮我们做这两件事。 二....通过观察登录界面,我们发现背景图片是提供好的,因此需要使用UIImageVIew设置背景图片,另外可以将登陆界面分为三部分,每一部分用UIView当载体存放,只要View内部的控件布局好了,只需要管理三个...View的位置大小几个,方便于我们布局和管理。...关于三个button添加约束的方法:可以先设置中间按钮约束,然后约束三个按钮相互之间的间距为0。左边按钮与屏幕左边间距为0,右边按钮与屏幕右边为0,高度相同。最后约束三个按钮平分屏幕宽度。...文字内容 : nsstring 文字属性 : 文字颜色 NSForegroundColorAttributeName 字体大小 NSFontAttributeName 下划线 NSUnderlineStyleAttributeName

    2.1K50

    UILabel、UIImageView和UIButton

    UILabel 说两个UILabel的小众属性和方法。...第二个是sizeToFit方法,label调用该方法后,label的尺寸会根据内容来自适应,如果是多行则宽度不变,高度变化;如果是单行,则高度不变,宽度自适应变化。...UIImageView 只说一个animationImages属性。该属性是一个UIImage的数组,可以实现一个简单的动画,但是只有在做非常规动画的时候才会有优势。...*animationImageView = [[UIImageView alloc] init]; animationImageView.animationImages = array;//设置图像视图的动画图片属性...,而这个视图内部的布局有需要自定义,这个时候就可以自定义一个UIButton,然后通过addSubview的方式给自定义的Button添加个性化组件和布局。

    77430

    「 UITableView 入门 」新人解决列表 Cell 高度自适应,UITableViewCell 高度自适应

    一、前言 我们在写列表的时候,经常出现每一个 Cell 高度不一样的情况,但是 iOS 这边是在是太不智能了 比起隔壁 android 的 RecyclerView ,人家可以自动更具每一项高度,来进行伸缩变化...cell 的高度,伸缩变换后显示出来,网上有很多类似的帖子,但是大都纸上谈兵,没图没代码地讲不清楚,而且还都是 n 年前的文章 那么开始前。...,后续文章我会挤时间,专门搞一篇 UITableView 异步请求加观察者模式的文章来给大家分享 3.2 编写列表 item - UITableViewCell 要让 cell 随自身内容大小而变化高度...,只需要注意三点即可 首先是,addSubView 必须是添加到 contentView 上,而非简单的 self 其次是,内部组件必须设置 translatesAutoresizingMaskIntoConstraints...中设定子控件各边与 cell 各边的关系来指定 另外一点就是,对于每个子 view 以及我们 cell 的 conteentView 我们都需要设定它们的 accessibilityIdentifier

    2.2K10

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

    参考资料 好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书籍,好资料。...,可见这篇文章的火热) RunLoop个人小结 (这是一篇总结的很通俗容易理解的文章) sunnyxx线下分享RunLoop(这是一份关于线下分享与讨论RunLoop的视频,备用地址:https:/...(这一点,相信大家都知道,要尽量避免在主线程中执行,一般都是创建一个子线程来执行,然后再回到主线程) 2.动态计算UITableViewCell的高度,时间过久 在iOS7之前,每一个Cell的高度,...关于这一点,我以前的做法是在Cell中定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储在Cell对应的Model中(Model里定义一个属性来存高度),然后在渲染Cell时,...这样在为Cell各个子控件赋值时,仅仅是取值、赋值,在计算Cell高度时,也仅仅是加法运算。 3.界面中背景色透明的视图过多 为什么界面中背景色透明的视图过多会影响UITableView的流畅?

    2.2K41

    UILabel在开发中的常用功能总结

    在项目开发中,我们经常会遇到在这样情形: 1、在一个UILabel 使用不同的颜色或不同的字体来体现字符串 在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的...iOS 在UILabel显示不同的字体和颜色"; labelStr.textColor = [UIColor lightGrayColor]; labelStr.font = [UIFont systemFontOfSize...addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, 4)]; // 设置指定区域字体样式和大小...,让图片始终能恰好的在文字后面。...有时文字的多少是不确定的,这时就需要我们判断这些文字的宽和高,以便于正确定义label的位置大小 NSString *layoutStr = @"iOS UILabel自适应宽度"; UILabel

    94820

    iOS-屏幕适配实现(AutoLayout)

    对于有层次关系的两个 view 之间的约束关系,添加到层次较高的父 view 上 自身的宽高等约束,添加到自身视图上 特殊控件的约束 UILabel默认内容的显示方式是垂直居中的...如果我们通过约束给定了UILabel的width = 100,但是内容仍然少的可怜,不能包裹,可以把宽度设置为的宽高都能包裹住内容。高度的设置同理可证。...原因在于,UILabel是根据内容自动调整宽度和高度,如果没有内容,那么宽度和高度就是0,导致UILabel无法显示。...Safe Area : iOS11中增加的,safe area 可以看作是系统在所有的 view 上加了一个虚拟的 view, 这个虚拟的 view 的大小等都是跟 view 的位置等有关的(当然是在...,同一控件通过设置不同常数值实现相同效果,可以在配置在添加布局,而不是添加两个约束 在配置在添加布局,而不是添加两个约束 在不同设备上修改控件属性,比如在iPhone竖屏上字体比较小,在iPhone

    44110

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

    事件总是能找到解决方法的, 有的人会先建立一个按钮控件铺在下面,而在上面分别覆盖一个UIImageView和UILabel来实现;而有的人则干脆在UIButton上建立一个UIImageView和UILabel...前面说的几个方法看起来有效,也确实会解决问题,但缺点是代码量会增加,而且必须同时管理UIButton, UIImageView, UILabel这三个整体,如果哪天产品还希望有一个按钮按下高亮或者按下阴影效果时...答案是否定的,其实UIButton本身是可以支持各种图文结合的,既然UIButton上能同时显示图片和文字,那就可以肯定的说UIButton里面本身一定有一个UIImageView和UILabel8子视图...图片保持居中,而文字水平居中并且在图片的上面 这种方式要求图片在按钮居中,而文字则要求左右居中并且在垂直在图片的上面并保留出padding的间隔。...图片保持居中,而文字水平居中并且在图片的下面 这种方式要求图片在按钮居中,而文字则要求左右居中并且垂直在图片的下面并保留出padding的间隔。

    3K10
    领券