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

我如何为我的按钮创建一个约束,这样它就不会弄乱它的大小

为了为按钮创建约束,使其不会改变大小,你可以使用自动布局(Auto Layout)来实现。自动布局是一种用于创建灵活且自适应的用户界面的技术。

在iOS开发中,你可以使用Interface Builder或者代码来创建约束。下面是一些步骤来为按钮创建约束:

  1. 使用Interface Builder:
    • 打开Storyboard或者XIB文件,将按钮拖放到你的视图控制器中。
    • 选择按钮,点击右侧的"Pin"按钮(或者选择"Editor" -> "Pin"菜单)。
    • 在弹出的面板中,取消勾选"Width"和"Height"选项,确保宽度和高度不会改变。
    • 选择"Leading Space to Superview"和"Top Space to Superview"选项,以确保按钮与父视图的左边和顶部有约束。
    • 点击"Add Constraints"按钮来应用约束。
  • 使用代码:
    • 在你的视图控制器的viewDidLoad方法中,创建一个按钮对象并添加到视图中。
    • 设置按钮的translatesAutoresizingMaskIntoConstraints属性为false,以启用自动布局。
    • 创建约束对象,将按钮的左边和顶部与父视图的左边和顶部对齐。
    • 将约束对象添加到按钮的父视图中。

以下是一个示例代码片段,展示了如何使用代码创建约束:

代码语言:txt
复制
override func viewDidLoad() {
    super.viewDidLoad()
    
    let button = UIButton()
    button.translatesAutoresizingMaskIntoConstraints = false
    button.setTitle("按钮", for: .normal)
    button.backgroundColor = .blue
    view.addSubview(button)
    
    let leadingConstraint = NSLayoutConstraint(item: button, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1.0, constant: 20.0)
    let topConstraint = NSLayoutConstraint(item: button, attribute: .top, relatedBy: .equal, toItem: view, attribute: .top, multiplier: 1.0, constant: 20.0)
    
    view.addConstraints([leadingConstraint, topConstraint])
}

这样,按钮就会被约束在父视图的左上角,且不会改变大小。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,你可以参考腾讯云的文档和官方网站来了解他们的云计算产品和解决方案。

相关搜索:我正在尝试调整我的img大小,以适应我的导航栏的正上方,这样它就不会太大了?我如何过滤掉一个大于100的值,这样它就不会把它放在总和中我想从sentimentr包中删除一个特定的术语,这样它就不会影响整个情感得分。如何创建一个按钮并在我点击时修改它的值?你怎么把<a>标签放在我的html代码上,这样它就不会影响它的背景色和颜色或文本了?我试着在我的游戏中做一个日光循环,但是一旦它变成了黑夜,它就不会回到白天。我创建了这个循环,但我想给它分配一个范围(3),这样它就不会打印大量的数字……有什么想法吗?我想垂直扩展我的textField,给它一个伸缩性,这样它就可以响应所有的纵向屏幕,但是它给了我一些错误我想创建一个求职搜索引擎。如何为显示的每个作业创建应用按钮?已使用接口生成器创建UIButton。现在,我想使用约束来更改该按钮的位置和大小如何为我的数据框创建一个新列,它的值是由来自不同列的值组成的映射?我正在为我的python程序创建一个tkinter UI。然而,我对tk.button有一个问题。它给我的图像按钮行加了下划线我正在尝试创建多个循环,但是如果一个循环返回null,它就不会运行循环的其余部分。我该如何解决这个问题呢?我该如何在一个html网站上创建可编辑的“块”,当一个加号按钮被按下时它就会出现?我正在创建一个可过滤的灯箱画廊。滤镜/按钮适用于lightbox,但这些按钮不会更改站点本身的图像在C中创建一个字符串时,我试图将其内容复制到该字符串的文件,在我实际告诉它之前就这样做了如何使用js选择器选择'::cue‘元素并更改它?我正在尝试创建一个按钮来改变字幕的不透明度我使用Qt C++创建了一个桌面应用程序。右键单击QPush按钮,它会打开类似"BC,RT,MT。如何为其编写代码“的项目
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Figma里这样完成悬浮FAB按钮制作,半小时搞定!

今天我们来做一个FAB按钮,此类按钮在安卓设计中非常常见,它一般悬浮在页面右下角,可以快捷打开某个操作。 在本课中,我们的重点是智能动画(smart animation)。...003.设计属性 智能动画可以检测任何设计属性的变化。我们可以更改任何图层的大小、位置、旋转、自动布局属性、约束、填充和描边。我们可以单独使用这些,也可以一起使用,这取决于我们追求的效果。...005.创建步骤: 创建并命名 4 个按钮:添加、发表、媒体、语音 我们将从最终状态开始。对于这个组件,我们需要 4 个圆形按钮,每个按钮都有一个图标。一个按钮将是我们的主按钮,其他将是子菜单按钮。...将所有的状态放在一起 从关闭状态的添加按钮到打开状态,反之亦然 8.设置智能动画 在我们的交互详细信息窗格中,选择智能动画。选择过渡类型,“缓出并重新加入”。随意弄乱时间。...我使用了默认的 300 毫秒。 9. 将动作按钮实例添加到框架,设置约束并检查固定位置 现在我们开始测试原型。向框架添加一个实例。将约束设置为右下角。最后,检查固定位置,以在滚动时将其保持在原位。

2.5K20

代码实验室--带你一步步理解使用 ConstraintLayout

选择好后, ImageViewe 出现在布局上, 你可以如"约束系统概述"中提到的一样点击拖动角以调整图片大小....继续, 从布局中删除 TextView 创建 ImageView 底锚点和容器底部的约束 UI 生成器应该看起来是这样 Inspector 显示出控件控件在一个方形区域的中间....选择 "Design" 标签 Autoconnect 已经启用 下面我们选择 ImageView 然后拖动它到布局中间直到提示线出现, 几秒钟内, 它就被居中了, Autoconnect 介入并创建了与容器上下左右的约束...其它空间不会约束于你正在移动的控件, 但是你正在移动的控件会约束与其它控件. 这是一个重要的区别, 因为它意味着自动连接不会修改你当前的约束....最终的布局应该看来是这样. 一旦约束被创建, 你可以修改点击 UI 生成器左上的 按钮修改 "virtual device to render with".

2.7K60
  • 6详解AppBar小部件

    leading放置在AppBar的最左边位置;title并actions出现在它的右边。...以下代码将 AppBar 的高度增加到15. AppBar( elevation: 15, ), 请注意 AppBar 被抬起并且阴影跨越了更大的区域。 阴影颜色 你甚至可以弄乱阴影的颜色。...工具栏包含文字,图标,按钮,和其他任何公司的前景,除了小部件,如Container和Image。...Flutter 中使用 AppBar 的布局 ( leading, title, 和actions) 如何自定义 AppBar 的布局和添加小部件 如何为 AppBar 的图标、文本、背景、高度、阴影颜色和工具栏设置主题...关于 Flutter 的 AppBar 必须提供的所有内容的完整演练。我希望这篇文章能帮助你在未来所有的 Flutter 应用程序中创建漂亮的 AppBars。

    16.4K10

    18个您想了解的微小但有用的macOS功能

    在此处,单击右侧面板下方的“+”按钮,以打开快捷方式创建器(我的术语)对话框。 接下来,从“应用程序”下拉菜单中选择Safari 。...4.跳回到搜索结果 在获取上面的屏幕截图时,我偶然发现了另一个功能:SnapBack。 当您单击Google之类的搜索结果中的链接,然后从一个网页跳至下一个网页时,回到您的搜索结果是很痛苦的,对吧?...如果您熟悉SnapBack功能,则不会。它适用于任何搜索引擎,但前提是您必须在与搜索结果相同的标签中打开链接。...8.强制查找器中大小相等的列 像我这样的怪胎将对此功能表示感谢。在Finder的列视图中,在调整列大小的同时按住Option键,您会看到它们均匀地上下缩放。...对于您经常使用的其他特殊字符,请在“系统偏好设置”>“键盘”>“文本”下设置文本扩展快捷方式。我为卢比符号创建了一个。每当我输入rs时,它就会显示出来。并按空格键。

    6.1K30

    Flutter —快速开发的IDE快捷方式

    只需输入stless即可创建一个无状态小部件,如下所示: 或输入stful创建有状态的小部件: 如果您已经创建了一个无状态小部件并添加了许多子级,但是却意识到您最终将需要一个State怎么办?...给组件添加Padding 假设您有一个不是容器的窗口小部件,因此它没有padding属性。您想填充一些内容,但担心会弄乱您的小部件结构。...使用我们的魔术棒,您可以添加填充而不会弄乱任何东西: 只需在需要填充的小部件上按Alt + Enter,然后单击“add padding”即可。现在您可以将默认填充修改为所需的填充。...当您打开它时,它看起来像这样: 现在,您可以清楚地看到哪个窗口小部件,它们在用户界面中的排列方式以及哪些窗口小部件具有其他子窗口小部件。十分简单!...我的文章是免费的,但是您知道您可以按点赞按钮50次吗?你走得越高,就越激励我为你写更多的东西!

    2.1K20

    Android新特性介绍,ConstraintLayout完全解析

    第二种用于删除某一个控件的所有约束,选中一个控件,然后它的左下角会出现一个删除约束的图标,点击该图标就能删除当前控件的所有约束了,如下所示。 ?...当你选中任意一个控件的时候,在右侧的Properties区域就会出现很多的属性选项,如下图所示。 ? 在这里我们就可以设置当前控件的所有属性,如文本内容、颜色、点击事件等等。...比如说我想让Button的宽度充满整个布局,操作如下图所示。 ? 可以看到,我们将Button的宽度指定成any size,它就会自动充满整个布局了。...可以看到,我们给登录按钮的右边向Guideline添加约束,登录按钮的下面向底部添加约束,并拖动按钮让它距离底部64dp。...然后给注册按钮的左边向Guideline添加约束,注册按钮的下面向登录按钮的下面添加约束。这样就实现了让两个按钮在水平方向上居中显示,在垂直方向上都距离底部64dp的功能了。

    1.9K70

    都2021年了,为什么想回看5分钟前写的代码就这么难

    一项研究发现,Java 开发者在写代码的时候平均每 6 分钟回溯一次,这意味着他们经常会需要使用 undo 按钮或 Ctrl+z 让代码恢复到之前的状态。...Undo 到尽头 对于代码工作来说,撤销和重写按钮总是很有意义的设计。但这里会存在一些问题:(1)如果回溯之前的状态,进行了新的更改,之前的状态就会丢失。(2)人们无法看到改前改后状态的直接对比。...他们可能会有这样的想法:「我要把代码弄乱了,在弄乱之前,我要用 Ctrl-A 和 Ctrl-V 将它复制到一个新的标签页中,然后把该窗口放在编辑器旁边,用作参考。」...由于 Henley 可以访问 LabVIEW 编辑器的源代码,因此他为 LabVIEW 的实验版创建了一个带有已启用功能的分支。...等到它正式上线之后,我们就可以评判一下了。

    42120

    JavaScript内存管理介绍

    每次我们分配一个变量或创建一个函数时,该变量的存储会经历以下相同的阶段: image.png 分配内存 JS 会为我们处理这个问题:它分配我们创建对象所需的内存。...所以 JS 不会更改原始值,而是创建一个新值。...这样,当垃圾收集器下次再运行时,它就会释放那 些引用次数为零的值所占用的内存。 我们看下面的例子。...除了意外地将变量添加到根目录之外,在许多情况下,我们需要这样来使用全局变量,但是一旦不需要时,要记得手动的把它释放了。 释放它很简单,把 null 给它就行了。...如果我们的项目中有这样的代码,很有可能不需要一直运行它。 只要setInterval没有被取消,则其中的引用对象就不会被垃圾回收。 确保在不再需要时清除它。

    98620

    ConstraintLayout_1:可视化拖拽布局

    ,Android Studio会自动帮我们创建好一个布局,如下图所示。...5.gif 第二种用于删除某一个控件的所有约束,选中一个控件,然后它的左下角会出现一个删除约束的图标,点击该图标就能删除当前控件的所有约束了,如下所示。...比如说我想让Button的宽度充满整个布局,操作如下图所示。 9.gif 可以看到,我们将Button的宽度指定成any size,它就会自动充满整个布局了。...12.gif 可以看到,我们给登录按钮的右边向Guideline添加约束,登录按钮的下面向底部添加约束,并拖动按钮让它距离底部64dp。...然后给注册按钮的左边向Guideline添加约束,注册按钮的下面向登录按钮的下面添加约束。这样就实现了让两个按钮在水平方向上居中显示,在垂直方向上都距离底部64dp的功能了。

    1.4K20

    规范约束条件

    要解决这些问题,我们就必须把确实需要的约束写出来,这句话说起来简单,其实做起来不太容易。下面我就来讲解一下如何正确的编写一个规范的约束。 零、简述 何为约束?...如果我们不给它指明类型参数,那么它就会默认设置类型参数是 System.Object 类型。我们通过约束来表达对泛型类型的类型参数的约束要求会营销编译器和使用这个类的开发人员。...一、如何规范约束条件 讲解之前我们先来看一个例子,这个例子判断了输入的两个值是否相等。...我们在编写泛型类的时候,最好在内部编写相互重载的多个方法,这样就可以针对不同的情况调用不同的方法,并且其他开发人员调用起来也不会有过于严谨的约束。...的形式创建,那么我们才可以使用这三种约束。

    93810

    【100 种语言速成】第 6 节:TclTk

    如果我们将语言放在类似 unix-shell 的尺度上,它会是这样的: 传统的 Unix shell - 几乎不能用于编写代码 现代的 Unix shell - 一些讨厌的控制结构,不适合真正的编程,但有些人还是强迫它...-text “…” -command {…}- 使用给定的文本和给定的 onclick 命令创建按钮,并将其保存到变量name pack .name- 将小部件放在name窗口中(默认水平居中,在顶部...counter 它们是为了修改全局变量 -incr 否则甚至会创建一个新的局部变量 我们创建一个标签 --textvariable 参数使其在指定的全局变量更改时更新 -command { … }我们创建了一对按钮来调用我们的函数...至于你的 shell 脚本的快速 GUI,Tk 是一个相当糟糕的工具包,我在我的 Electron Adventures 系列中介绍了许多更好的工具包。...对于 Tcl/Tk,我真的没有看到类似的东西。它做了它的事,然后它就静静地死去,现在它几乎被遗忘了。

    2.6K40

    原来你是这样的Flutter

    比如Center就向它的子Widget传递居中的约束,当访问到叶节点的时候,这时候Widget树上所有的Widget都知道了它们的约束,这时候他们就可以根据已有的约束自己确定它们实际要占有的大小跟位置,...我们前面提到过Widget拿到自己的约束后会决定自己的大小,其实这些约束拿到了之后是给了自己对应的RenderObject,它们会根据约束决定Widget在屏幕上的真实的物理大小。...•特定大小,比如Image对应的RenderObject 关于Flutter自带的RenderObject就这三点比较重要,一般我们也不会去自定义RenderObject。...可能大家没看我之前的文章,有的人还不熟悉Flutter开发,我这里先带大家定义一个按钮叫做FancyButton,看完大家就知道Flutter代码怎么写了: class FancyButton extends...这下Flutter再也不会认为没有改变啦,再次运行项目,这下按钮切换的同时背景色也会跟着改变了。 好啦,到了这儿,Flutter的基本工作流程我们算是搞明白了,怪不得它频繁build却不卡顿!

    59810

    计算机科学里最大的难题:居中显示

    苹果没做到: 微软没做到: GitHub 没做到: Valve 没做到: Slack 没做到: Telegram 没做到: 谷歌地图没做到: 说实话,像这样糟糕的按钮对齐,我不用找就能举出无数的例子:...许多公司,无论大小,都未能免于文本居中的问题。 行 高 除了字体参数,下一个影响完美居中的问题是行高。 行高是一个复杂的话题。...现在,我们什么也对不齐了: 我们也没法设置图标大小。在上面的例子中,所有图标的字体大小和行高都做了同样的设置。如你所见,它们的大小、边距都不一样,没有哪一个真正地对齐了。...遗憾的是,如果你计划替换字体,这不会起作用。 我们将使用 IBM Plex Sans。它的参数如下: 你在设置font-size时,你设置的是 UPM(这个也等于1em)。...我相信,只要我们齐心协力,就能找到把一个矩形套在另一个矩形里而又不会把它弄乱的方法。 就我个人而言,我希望生活在一个 UI 美丽而平衡的世界里。我相信你也是。最终,一切都是值得的。

    11510

    计算机科学里最大的难题:居中显示

    苹果没做到: 微软没做到: GitHub 没做到: Valve 没做到: Slack 没做到: Telegram 没做到: 谷歌地图没做到: 说实话,像这样糟糕的按钮对齐,我不用找就能举出无数的例子:...许多公司,无论大小,都未能免于文本居中的问题。 行 高 除了字体参数,下一个影响完美居中的问题是行高。 行高是一个复杂的话题。...现在,我们什么也对不齐了: 我们也没法设置图标大小。在上面的例子中,所有图标的字体大小和行高都做了同样的设置。如你所见,它们的大小、边距都不一样,没有哪一个真正地对齐了。...遗憾的是,如果你计划替换字体,这不会起作用。 我们将使用 IBM Plex Sans。它的参数如下: 你在设置font-size时,你设置的是 UPM(这个也等于1em)。...我相信,只要我们齐心协力,就能找到把一个矩形套在另一个矩形里而又不会把它弄乱的方法。 就我个人而言,我希望生活在一个 UI 美丽而平衡的世界里。我相信你也是。最终,一切都是值得的。

    9510

    CSS 计算属性 calc()的完整指南(下)

    Firefox DevTools – Rules 如果您需要找出计算值,有一个计算选项卡(在所有浏览器的DevTools中,至少在我所知道的范围内)会向您显示它。...我用它创建了一个.full-bleed 实用工具类:.full-bleed{width:100vw;margin left:calc(50%-50vw);}我想calc()在我的前3个CSS中。...我用它来为粘性页脚腾出空间。 我用它来设置一些流体字体/动态排版......根据最小值、最大值和视口单位的变化率来计算字体大小。不仅仅是字体大小,还有行高。...我很喜欢的一个方法是有一个 "内容宽度 "的自定义属性,然后用它来创建我需要的间距,比如 margins: .margin { width: calc( (100vw - var(--content-width...)) / 2); } 我用它创建了一个跨浏览器的drop-cap组件。

    1.8K20

    Android经典实战之约束布局ConstraintLayout的实用技巧和经验

    心里种花,人生才不会荒芜,如果你也想一起成长,请点个关注吧。 ConstraintLayout 是 Android 中一种强大的布局管理器,能够帮助你创建复杂而灵活的布局。...它通过约束系统将一个 View 的位置和大小与其他 View 或父布局联系起来,使得布局代码更加简洁且易于维护。...它允许你在视图之间创建多种多样的约束条件,比如对齐、比例、偏移等。 基本用法 要使用 ConstraintLayout 需要在布局文件中声明它,通常使用 XML 文件来定义约束: 它的左右边缘约束到父布局左右边缘,顶部和底部分别约束到父布局顶部和底部,这样它就会在父布局中居中显示。...性能调优:ConstraintLayout 自身性能已经不错,但确保你不为每个小部件使用过多的复杂约束,这样可以保持较好的渲染性能。

    29910

    Flutter原理:三棵重要的树(渲染过程、布局约束、应用视图的构建等)

    这也是 Flutter 框架层做的一大优化。下面又来了,Element 作为经理人也很体面,当然不会把活全干完,于是又找了一个 RenderObject 的员工来帮它做粗重的累活。...Elememt 这棵树,它持有其对应 Widget 的引用,如果他对应的 Widget 发生改变,它就会被标记为 dirty Element,于是下一次更新视图时根据这个状态只更新被修改的内容,从而达到提升性能的效果...Flutter 再将这个 Element 放到元素树上,并持有创建它控件的引用,如下图: ? 控件会有它的子树: ? 子控件也会创建相应 Element 被放在元素树上: ?...Flutter 中的 Widget 一直在重建,每次重建之后,Element 都会采用相应的措施来确定是否我对应的新控件跟之前引用旧控件是否有所改变,如果没改变则只需要做更新操作,如果前后不同则会重创建...子节点接受到来自父节点的约束后,会依据它产生自己具体的布局信息,如父节点规定我的最小宽度是 500 的单位像素,子节点按照这个规则可能定义自己的宽度为 500 个像素,或者大于 500 像素的任何一个值

    1.8K40

    项目需求讨论 — ConstraintLayout 详细使用教程

    这时候因为不是单纯的一边对齐,而是相同直线上的二个边都被约束了。所以按钮无法紧靠着左边的或者右边的其中一个边界,所以这时候,这个按钮就会居于二个约束边界的中间位置。如下图所示: ?..., 约束不会限制生成的尺寸值。...="wrap_content" android:layout_height="0dp" app:layout_constraintDimensionRatio="1:1" /> 复制代码 这样这个按钮的宽和高是一样大小的...为了约束一个特定的边,可以根据另一个边的大小来限定宽度或高度: 可以通过在比率前面添加字母W(用于限制宽度)或H(用于限制高度),用逗号分隔来指示哪一边应该受到约束: <Button android:layout_width...---- 链(Chains) 链在单个轴(水平或垂直)中提供类似组的行为。 创建一个链: 如果一组小部件通过双向连接链接在一起,则认为它们是一个链,如下图所示,是一个具有二个控件的最小的链: ?

    1.7K20

    2022 跳过剧情的年度总结

    ,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能......其实,也就是普通得再不能普通的一个视频通话罢了孤独,是一种无奈的痛苦,很幸运,你我都能彼此在此交流灵魂。...也感谢你分享的故事,我理解了何为成长,何为付出,何为放弃。...;对于残障人士来说,我们会对这个按钮解释说明:一个可以操作的蓝色按钮,点击之后会进入教程页面,下一个按钮为xxx,上一个按钮为xxx图片图片我们不追求花里胡哨的动画,冗余复杂的功能,仅仅是通过最基本的“...我知道,这也没错,这确实没什么了不起的,因为这只是一个开始作为一位开发者,一位普普通通的开发者,做过最高兴的事情,莫过于脑中的想法成功在物质上实现了,虽然它很曲折,但这样的曲折更有意义所有的成就,离不开大家的共同努力...,它是实力的证明,是身份的代表看到它,就像看到了镜中的自己,此时此刻,它就是我,它被我铭记就足够了一个人,能够在未知艰险的探索中,无比艰难的条件下,保持前行,并不断突破让热情的烈火越燃越高,甚至突破了黑暗

    690121
    领券