首页
学习
活动
专区
工具
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 预处理宏,也要让您宏调用另一个函数,并尽可能多地转移到该函数)。

11710

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个有效方法》阅读笔记

61520
  • 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.1K70

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

    87610

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

    Swift和Objective-C iOS开发并不仅仅意味着Swift。很多项目的某些部分仍然在用Objective-C——甚至有的项目完全是用Objective-C编写。...(如果求职者会Objective-C):Objective-Catomic/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-CC++ 和 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

    2K30

    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编程语言性能高级技巧可以多个方面进行考虑。

    29710

    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.4K70

    IOSIOS开发问题解决方法索引(三)

    · 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—使用

    89720

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

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

    2.2K30

    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.4K20

    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开发之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

    使用Kotlin Native技术开发iOS应用

    AppCode简介 AppCode是JetBrains公司出品用于开发Mac OS X以及iOS应用程序集成开发环境,能够支持Xcode项目的运行和调试功能,并为Swift和Objective-C...Kotlin Native在0.4版本引入了对Objective-C API调用支持,并引入了对WebAssembly实验性支持。...方式创建iOS项目支持使用Kotlin语言来编写iOS应用程序,如图16-7所示。...相比使用Xcode创建原生iOS项目而言,使用Kotlin/Native方式创建iOS项目显然多一些配置文件(Frameworks和KotlinNativeFramework)。...不过,此时程序还没有实现任何功能,为了在项目中使用Kotlin来编写iOS应用程序,可以在Kotlin Native项目的Project文件创建一个Kotlin文件目录(src/main/kotlin

    2K30
    领券