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

如何在Objective C中使用从iOS 9创建的约束?

在Objective C中使用从iOS 9创建的约束,可以通过以下步骤实现:

  1. 创建约束对象:使用NSLayoutConstraint类来创建约束对象。约束对象包含了视图之间的关系和限制条件。
  2. 添加约束:将约束对象添加到视图上。可以使用addConstraint:方法将约束对象添加到视图的约束集合中。
  3. 设置约束属性:根据需要,设置约束对象的属性。例如,可以设置约束对象的constant属性来调整约束的值。
  4. 激活约束:在iOS 8及更早版本中,需要手动调用setTranslatesAutoresizingMaskIntoConstraints:方法将视图的translatesAutoresizingMaskIntoConstraints属性设置为NO,以启用自动布局。但是从iOS 9开始,默认情况下视图的translatesAutoresizingMaskIntoConstraints属性已经被设置为NO,因此不需要手动设置。

以下是一个示例代码,演示如何在Objective C中使用从iOS 9创建的约束:

代码语言:txt
复制
// 创建视图
UIView *view1 = [[UIView alloc] init];
view1.translatesAutoresizingMaskIntoConstraints = NO;
view1.backgroundColor = [UIColor redColor];
[self.view addSubview:view1];

UIView *view2 = [[UIView alloc] init];
view2.translatesAutoresizingMaskIntoConstraints = NO;
view2.backgroundColor = [UIColor blueColor];
[self.view addSubview:view2];

// 创建约束对象
NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:20.0];
NSLayoutConstraint *constraint2 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:20.0];
NSLayoutConstraint *constraint3 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0.0];
NSLayoutConstraint *constraint4 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0.0];

// 添加约束
[self.view addConstraints:@[constraint1, constraint2, constraint3, constraint4]];

// 激活约束
[NSLayoutConstraint activateConstraints:@[constraint1, constraint2, constraint3, constraint4]];

这段代码创建了两个视图view1和view2,并使用约束对象constraint1、constraint2、constraint3和constraint4来定义它们之间的关系和限制条件。然后将这些约束对象添加到视图的约束集合中,并激活约束。

这是一个简单的示例,展示了如何在Objective C中使用从iOS 9创建的约束。根据具体的需求,可以使用不同的约束属性和方法来实现更复杂的布局。

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

相关·内容

Objective-C 中 9 种避免使用 Xcode 预处理器宏的方法

除了极少数例外,使用 Xcode 预处理器宏是一种代码气味。C++ 程序员们已经深有体会:" "。不幸的是,还有很多的 Objective-C 程序员尚未领悟到这一点。...本文是Objective-C 中的代码气味系列文章中的一篇。 这是一个可以在终端运行的便捷命令。它可以检查并显示当前目录下的源文件,预处理器宏的使用情况,你应该仔细检查。...以下是一些常见的 Xcode 预处理器宏,以及如何替换它们: 1、#include 让我们从传统 C 中的一个简单例子开始: Smell #include "foo.h" 除非您提供的是平台无关的 C...2、Macros - 宏 Smell #define WIDTH(view) view.frame.size.width 使用 Objective-C 并不意味着不能使用普通的 C 语言函数!...除非您的自定义宏依赖于 Xcode 预处理器宏(如__LINE__),否则请将其重写为一个独立函数。(即便依赖于 Xcode 预处理宏,也要让您的宏调用另一个函数,并尽可能多地转移到该函数中)。

14610

iOS快速入门

《Objective-C基础教程》第8章 Foundation Kit介绍 《Objective-C基础教程》第9章 内存管理 《Objective-C基础教程》第10章 对象初始化 《Objective-C...基础教程》第11章 属性 《Objective-C基础教程》第12章 类别 《Objective-C基础教程》第13章 协议 《Objective-C基础教程》第14章 代码块和并发性 2. iOS开发入门...推荐使用代码提示中宏定义的NS_ENUM()枚举模块来创建,它可以提供更严谨的类型检测和代码补完功能。 私有变更应该在类的私有类别中,不需要加private等词语来进行修饰。...——The official raywenderlich.com Objective-C style guide. (4) iOS单例模式 JAVA设计模式之单例模式 使用dispatch_once创建单例...Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》阅读笔记

62520
  • PureLayout,使用纯代码写AutoLayout

    PureLayout是一个跨平台的Objective-C库,可以在伟大的Swift里工作(并查看!)。它完全与iOS的支持自动布局所有版本和OS X的向后兼容。 从头开始编写自动布局代码是不容易的。...创建 兼容性 PureLayout的当前版本支持所有版本的iOS和OS X的,因为每个平台上推出自动布局,在这两个Swift和Objective-C ,用一个单一的代码库!...Xcode 语言支持: Swift (任何版本), Objective-C 完全兼容: Xcode 7.0 支持的最低版本: Xcode 5.0 iOS 完全兼容: iOS 9.0 最低部署版本: iOS...属性 PureLayout定义了用于创建自动布局约束视图属性。这里是一个最常用的属性插图 。...下面是使用PureLayout创建(自动启动)两种观点之间的约束: view1.autoPinEdge(.Top, toEdge: .Bottom, ofView: view2) 如果没有PureLayout

    2.2K70

    窥探Swift编程之别样的HelloWorld

    从今天就开始陆陆续续的发布一些有关Swift语言的东西,虽然目前在公司项目开发中Objective-C还是iOS开发的主力军,但是在不久的将来Swift将会成为iOS开发中的新生宠儿。...其实在问题中成长是最快的,每个问题的解决就是自我提高的一个过程。有些事儿需要天赋,但有些事儿还是需要努力的,谁生下来就是技术大牛呢~大牛大部分不都是从吃白菜长大的么?...然后点击Next, 如果在你的项目中要使用CoreData来存储数据的话,你可以选择User Core Data。 ?     4....下面就是我们创建好的工程,Swift语言文件的后缀名是swift,它不在像Objective-C中的又.h和.m文件 ? 二.如何在上面的创建的工程上实现HelloWorld。   ...1.当然了,有Storyboard干嘛不用呢对吧,在ViewController上添加一个Label: HelloWorld 并设置样式,然后在label上添加一个Button,并添加相应的约束,如下所示

    1.8K80

    IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf

    1、引言----接上篇《金蝶随手记团队的Protobuf应用实践(原理篇)》,本文将以iOS端的Objective-C代码为例,图文并茂地向您菔救绾卧趇OS工程中快速使用Protobuf,希望对你有帮助...2、系列文章----本文是系列文章中的第 9 篇,本系列总目录如下:《IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!》...《IM通讯协议专题学习(六):手把手教你如何在Android上从零使用Protobuf》(稍后发布..)...《IM通讯协议专题学习(七):手把手教你如何在NodeJS中从零使用Protobuf》《IM通讯协议专题学习(八):金蝶随手记团队的Protobuf应用实践(原理篇)》《IM通讯协议专题学习(九):手把手教你如何在...iOS上从零使用Protobuf》(* 本文)另外:如果您还打算系统地学习IM开发,建议阅读《新手入门一篇就够:从零开发移动端IM》。

    91410

    iOS 开发面试通关指南:67 个必知问题!

    Swift和Objective-C iOS开发并不仅仅意味着Swift。很多项目的某些部分仍然在用Objective-C——甚至有的项目完全是用Objective-C编写的。...(如果求职者会Objective-C):Objective-C中的atomic/nonatomic是什么? 24.什么是KVO和KVC?这是另外一个很大的题目,所以至少要了解一些基本知识。...33.如何在Swift中解析JSON?如何在Swift中解析XML?JSON的那一题很简单。如果你知道的话,也顺便讨论一下你的密钥解码策略。...如何在iOS应用程序中实现?这题不会也没关系,但是如果知道会很加分! 35.如何允许不安全的连接?这是可行的吗?能通过应用审查吗?知道什么说什么就行——例如,可以谈谈在什么情况下是可以做到这一点的。...希望你不是那类一遇到约束冲突,就把所有约束的优先级都设置为999的人。 48.你在iOS中制作过的最复杂的动画是什么?你是怎么做的?如果你做过一些精美的东西,那就自信地说出来吧。

    1.2K20

    从 iPhone OS 1.0 到 iOS 14 编程语言的演变

    最后,为了尽可能完整,我对所有主要的 iOS 版本进行了分析,从 iPhone OS 1.0 到 iOS 14。这将详细概述不同编程语言在十多年的 iOS 开发中的演变。...在本文中,我决定更进一步,并计算使用 Objective-C、C++ 和 C 的二进制文件的数量。 请记住,您可以混合不同的编程语言来创建二进制文件。...一个示例是创建一个应用程序,该应用程序使用 C++ 作为低级引擎,使用 Objective-C 作为 UI。...检测二进制文件是否使用 Objective-C 非常简单,如Apple 文档中所述: Objective-C 运行时是一个运行时库,它为 Objective-C 语言的动态属性提供支持,因此所有 Objective-C...在 iOS 14 中的所有二进制文件中: 88% 使用 Objective-C 17% 使用 C++ 8% 使用 Swift 8% 完全用 C 1% 使用 SwiftUI 一些有趣的点: Objective-C

    2.1K30

    iOS界面布局之三——纯代码的autoLayout及布局动画

    iOS界面布局之三——纯代码的autoLayout及布局动画 一、引言         关于界面布局,apple的策略已经趋于成熟,autolayout的优势在开发中也已经展现的淋漓尽致。...除了使用storyBoard进行布局约束的拖拽,有时我们也需要在代码中进行autolayout的布局设置,Masonry库可以方便的创建约束属性,实际上,我们也没有必要再使用系统原生的代码来创建和设置约束...创建NSLayoutConstraint对象的方法有两种,下面我们分别介绍: 1、使用Objective-C风格的方法创建约束对象         所谓Objective-C风格的方法,就是通过原生枚举和一些属性设置来创建...先来介绍下方法中的参数都是什么意义,我们应该怎么用他们: view1:要添加约束的视图对象。...C:这是具体的约束值 对于这些属性,文档上有这样的解释:view1.attr1 = view2.attr2 * multiplier + constant 例如,我们创建一个label,将它的宽高固定为

    2.9K30

    全新Swift从入门到进阶实战探探iOS APP

    这使得学习Swift成为iOS开发者或计划成为iOS开发者的首要任务2。Swift语言与Objective-C的比较有哪些关键差异?...相比之下,Objective-C的语法自其创建以来几乎没有进化,与基于C++语法的其他现代编程语言有很大的不同7。...SwiftUI框架在iOS应用开发中的具体应用案例是什么?SwiftUI框架在iOS应用开发中的具体应用案例可以从其与UIKit框架的比较中得到一些启示。...SwiftUI框架在iOS应用开发中的应用案例广泛且多样,从数据密集型应用到文本输入密集型应用,再到动态内容展示、教育和技术培训以及游戏开发等多个领域都有其身影。...在iOS应用开发中,提高Swift编程语言性能的高级技巧可以从多个方面进行考虑。

    36110

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

    · 从 JS 里头传一个空对象给 Objective-C 程序,用的不是 Objective-C 里头原本表示「没有东西」的方式,像是 NULL、nil、NSNull 等,而是专属 WebKit...从 JS 调用 Objective-C也可以做类似的事情,如果 Objective-C程序里头需要一定时间的运算,或是我们可能是在 Objective-C 里头抓取网路资料,我们便可以把一个 callback...在 IOS 上我们没办法将某个 Objective-C 对象变成 JS 对象,所以,在网页中触发了某些事件,想要通知 Objective-C 这一端,往往会选择使用像「zonble://」这类 Customized...编写自文档化的代码 http://kb.cnblogs.com/page/47707/ 4 objective-c与js交互 如何在Objective-C的类里面声明私有方法. http...——GDataXML使用 如何在项目中设置使用GDataXML解析类库 http://www.cnblogs.com/lovecode/articles/2305416.html IOS学习笔记27—使用

    91820

    iOS学习——iOS 整体框架及类继承框架图

    通知 归档和序列化 表达式和条件判断 Objective-C语言服务 对于Foundation框架中的一些基本类的使用方法详情参见:iOS开发系列—Objective-C之Foundation框架  ...框架的入口: #import   ,当引入此头文件后,便可以在程序里使用任何在UIKit里声明的类。(PS: 当然还要把这个框架链接到你的应用程序中)。...),表混淆了)     应用程序可以通过三种方式使用UIKit创建界面:   在用户界面工具(interface Buidler)从对象库里 拖拽窗口,视图或者其他的对象使用。  ...3.2 Objective-C的优点   Objective-C语言有C++ Java等面向对象的特点,那是远远不能体现它的优点的。Objective-C的优点是它是动态的。...(为了区分两个对象,我把前面提到的对象叫Objective-C对象),包括Objective-C对象的方法调度表,实现了什么协议等 等。

    3.6K70

    苹果在 iOS 15 中使用了 Swift 和 SwiftUI

    在本文中,包含一行 Swift 代码的应用程序将被视为使用了 Swift 。 您将看到 Objective-C 和 C++ 被提及,但您可能会注意到 Objective-C++ 的缺失。...这里使用的方法无法真正检测到使用 Objective-C++ 构建的二进制文件。此类二进制文件被视为同时使用 Objective-C 和 C++ 。 最后,你应该对这个分析持保留态度。...请再次注意,一个二进制文件可以被多次计算,所以这个图中的二进制数据的总和大于二进制总数: 使用各种编程语言的二进制文件数量 在 iOS 15 的所有二进制文件中: 89% 使用了 Objective-C...Objective-C 仍然是 iOS 的核心,不会很快消失。 苹果对 Swift 的使用进展得比以往任何时候都快。去年,Swift 超过了C。今年,Swift 越来越接近 C++。...iOS 中创建内置应用程序的编程语言,并可以衡量这些语言从 iPhone OS 1.0 到iOS 15的演变。

    2.3K30

    TensorFlow 智能移动项目:1~5

    缺少的另一件事是缺少有关如何在基于 Swift 的 iOS 应用中使用 TensorFlow 的文档; 示例 TensorFlow iOS 应用都在 Objective-C 中,它们调用了 TensorFlow...否则,类似于我们在上一章中所做的,创建一个新的基于 Objective-C 的 iOS 应用,例如NeuralStyleTransfer,或者在现有应用中,在PROJECT下创建一个新的用户定义设置,命名为...创建一个新的assets文件夹,如图 2.13 所示,然后将您训练过的快速神经迁移模型从 iOS 应用中拖动(如果您在上一节中尝试过),或者从文件夹/tf_files中拖动,如“训练快速神经样式迁移模型...使用模型构建新应用 现在执行以下步骤来创建一个新的 iOS 应用以使用语音命令识别模型: 在 Xcode 中创建一个名为 AudioRecognition 的新 Objective-C 应用,并将项目设置为使用...然后,我们介绍了如何训练 TensorFlow 模型以识别简单的语音命令,并介绍了如何在 Android 应用以及基于 Objective-C 和 Swift 的 iOS 应用中使用该模型的分步教程。

    4.5K20

    iOS开发常用之测试调试、动态更新

    使用KIF,并利用iOS中的辅助功能API,你将能够编写模拟用户输入,例如点击,触摸和文本输入,自动化的UI测试。...快速 - 用于Swift中的单元测试(也可用于Objective-C),与Xcode整合在一起。...)iOS开发中的测试框架。...JSPatch - JSPatch是一个开源项目(Github链接),只需在项目里引入极小的引擎文件,就可以使用JavaScript调用任何Objective-C的原生接口,替换任意Objective-C...是不可多得地学习WatchKit的示例式教程(1.如何创建一个简单的交互式计数器; 2.如何从手表上控制iOS应用程序; 3.如何在WatchKit应用程序和iOS应用之间共享数据; 4,如何创建一个拥有不同背景色的数字时钟

    3.5K20

    iOS开发之ReactiveCocoa下的MVVM(干货分享)

    在之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM的架构设计与团队协作》,大体上讲的就是使用Block回调的方式实现MVVM的。...1.引入相应的头文件 在工程中引入下方的头文件(建议在Pch文件中引入)就可以使用我们的ReactiveCocoa框架了 Objective-C #import #import 1 2#import #...下方是merge信号量的代码: (1) 创建三个自定义信号量, 用于merge (2) 合并上面创建的3个信号量 (3) 往信号里灌入数据 Objective-C //合并信号 - (void)merge...上面示例的原理图如下: ? 五. 在MVVM中引入RactiveCocoa 学以致用,最后来个简单的实例,来感受一下如何在MVVM中使用RactiveCocoa。...2.下方是整个小Demo的工程目录,因为我们今天的重点是如何在MVVM中使用RAC, 所以重点在于RAC的应用,对于MVVM的分层就简化一些。

    5.9K30

    WWV 2018年十大必看视频

    的首席iOS工程师 如今,机器学习仍然是一个热门话题,Apple已经很容易将这项技术添加到您的应用程序中。使用Core ML 2,您可以将机器学习视为从代码中调用库。...第一个参数是接收者,第二个在Objective-C消息中发送是选择器,下一个系列是传入的参数。通常,你可以使用po控制台中的命令用于打印调试描述并查看当前值。一点点类型转换可以提供帮助。...在Objective-C代码中使用无名类别来隐藏Swift中不需要的东西,或者将项目移动和隐藏到实现文件中。 迁移到Swift 4,它也针对更快的构建进行了优化。...了解它的一些部分将从这个日常练习中解开谜团。 9)高性能自动布局 - 220 ?...使用并不总是出现的元素的一个技巧是将其设置为隐藏而不是添加或删除它。考虑始终存在的约束,并分别对来来去去的约束进行分组。将它们放在一个约束数组中,并创建一个没有约束的数组。然后你只是处理一系列约束。

    2.8K20
    领券