dnssd发现,发布和解析局域网或广域网上的网络服务。使用教程DNS服务发现API可帮助您执行三个主要任务:注册服务。浏览服务。将服务名称解析为主机名。为了支持这些主要任务,此API可以直接帮助您执行两个辅助任务:枚举域(查找推荐的服务域)。更新注册(动态更改DNS注册数据)。大多数应用不应使用此API,而应使用更高级别的服务发现API(例如NetService)。 如果您要编写不需要链接到更高级
概述这是iOS组件化方案-总结的第二篇,在本文中我实现了Target-Action方案的Demo,并与第一篇介绍的protocol方案做出对比。如果没有看过我第一篇protocol组件化方案的同学,可以先去下载我那篇文章中提供的Demo,方便理解我本文的详述以及了解我Demo中实现的业务场景,传送门iOS组件化方案-总结的第一篇Target-Action方案国际惯例先上Demo(下载主工程就好了哈
# SwiftUI ScrollView 基础使用 `ScrollView` 是 SwiftUI 中一个非常实用的组件,可以让用户在内容超出屏幕时自由滑动查看。通过使用 `ScrollView`,我们能够轻松实现内容的灵活布局。本文将介绍 `ScrollView` 的基础使用,提供代码示例,并展示类图和关系图。 ## `ScrollView` 组件的基本结构 `ScrollView` 可以在
原创 2024-10-08 06:00:07
60阅读
# SwiftUI Grid基础使用教程 在SwiftUI中,`Grid`是一个非常有用的布局工具,能够帮助我们灵活地组织和展示内容。本文将引导你逐步实现一个基本的SwiftUI Grid,我们将利用表格、代码示例以及图表,帮助你更好地理解每一步的操作。 ## 流程步骤 下面的表格展示了实现SwiftUI Grid的基本流程: | 步骤 | 描述
原创 10月前
120阅读
SwiftUI 样式修饰符:字体、颜色、内边距与背景
常量和变量// 定义常量与变量 // Option + click 可以查看变量/常量的类型 /** - 使用 `let` 定义常量 - 使用 `var` 定义变量 - Swift 中 使用 Int 对应 NSInteger, Double --> CGFloat - 自动推导:系统会根据等号后面的值,推断出前面
转载 2024-03-02 07:46:39
25阅读
基础知识sheet在给定条件为真时显示工作表。func sheet<Content>(isPresented: Binding<Bool>, onDismiss: (() -> Void)? = nil, content: @escaping () -> Content) -> some View where Content : ViewisPresent
转载 2023-05-29 16:24:11
205阅读
@State@State是一个属性包装器,可以用来描述视图的状态。 SwiftUI会将其存储在View struct之外的特殊内存中, 只有相关视图才能访问它。当 @State 装饰过的属性发生了变化,SwiftUI 会根据新的属性值重新创建视图struct ProductsView: View { let products: [Product] @State private v
转载 2023-10-11 10:45:58
143阅读
苹果近期推出了一个全新的 SwiftUI 框架,可以极大地提高 iOS 上 UI 界面的开发效率。今天小彭就用 SwiftUI 来实现一个新闻资讯 app,看看能有多快。受篇幅所限,我们将通过上下两篇文章为大家介绍如何实现一个完整的新闻资讯 app,本篇主要内容有:SwiftUI基础知识:预览、View 协议、修饰器、@State 特性等。使用 NavigationView、Navi
转载 2023-12-08 22:06:46
108阅读
置顶菜鸟入门,各位大佬轻喷,如有谬误之处欢迎讨论建议,也欢迎各位道友与我同行“不积跬步,无以至千里;不积小流,无以成江海”状态变量的定义如果我们把一个视图结构体类比为vue中的一个组件那么类比vue中的data属性,定义一个变量,它被引用时,它的变化会直接反应到视图上struct ContentView: View { // 定义一个私有的状态变量 test 它的初始值是字符串1
转载 2023-11-11 07:19:41
98阅读
import UIKitvar str = "Hello, playground"//1.变量,常量let max = 10 var current = 0 if current < max { print(current) } var x = 0,y = 0.0//2.类型标注var message:String message = "Hello"//常量和变量的命名可以使任何
布局简介Xcode的布局工具共有两套,一套为Autoresizing,另一套为AutoLayout。Autoresizing将可视化控件拖放到ViewController上时,默认使用的就是Autoresizing排版。在Storyboard中由两个同心正方形表示,外面的正方形表示SuperView(父视图),里面的正方形代表控件。例如,如果需要控件的宽度随屏幕的宽度自动调整,我们只需要设定控件的
转载 2023-09-04 12:57:17
201阅读
Animations and States终于来到了SwiftUI的重头戏了,这篇主要内容是动画和状态,重中之重是状态。 视频教程地址:教程链接 SwiftUI整体上是一个MVVM的框架了,有别于微软的MVVM框架,Android的LiveData,LifeCycle,DataBinding,Flutter的Stateful这一套概念,SwiftUI的MVVM更加的简便,封装程度更高,类似于web
转载 2023-09-04 08:34:30
121阅读
总结笔记在 UIKit 开发时,我们经常会接触一些像是 viewDidLoad,viewWillAppear 这样的生命周期的方法,并在里面进行一些配置。SwiftUI 里也有一部分这类生命周期的方法,比如 .onAppear 和 .onDisappear,它们也被“统一”在了 modifier 这面大旗下。但是相对于 UIKit 来说,Swift
转载 2023-06-29 10:54:33
356阅读
引言1 - Storyboard 是一个能够节省你很多设计手机 App 界面时间的新特性,如图所示  (1)通过上图,你可以大致明白,如果你要制作一个页面很多很复杂的 App,Storyboard 可以帮助你解决写很多重复的跳转方法的麻烦,节省很多时间,以便你能够完全的专注于核心功能的实现上2 - Storyboard 是最先在 iOS 5 引入的一项振奋人心的特性,大幅缩减构建 App 用户界面
如在OC中使用AFNetworking一般,Swift我们用Alamofire来做网络库.而Moya在Alamofire的基础上又封装了一层:1.关于moyamoya官方说moya有以下特性-_-:编译时检查正确的API端点访问.使你定义不同端点枚举值对应相应的用途更加明晰.提高测试地位从而使单元测试更加容易.2.开始1.创建枚举API就像这样:enum APIManager { case get
转载 2023-11-08 22:15:49
91阅读
SwiftUI 为我们提供了许多宝贵的方法来控制视图的对齐方式最简单的对齐选项是frame修饰器的alignment参数。请记住,文本视图始终使用显示其文本所需的确切宽度和高度,但当我们在其周围放置一个可以具有任何大小的框架时。由于父级在子级的最终大小中没有发言权,因此这样的代码将创建一个 300x300 帧,其中以较小的文本视图为中心struct sj_frame: View { var
转载 2023-12-21 06:11:41
64阅读
声明:阅读该文章请确保你有 Android 开发的相关知识 这是《Android 开发者的 Flutter》系列的第六篇,如果想看上一篇请参考: Android 开发者的 Flutter(五) —— Flutter 中的 Intent 及处理Flutter 中的 runOnUiThread()Dart 有一个单线程执行模型,支持 Isolates 事件循环和异步编程(在另一个线程上运行 Dart
转载 2023-12-27 06:47:39
55阅读
设置SwiftUI backgroundColor的方法与foregroundColor相同SwiftUI有一个称为的修饰符很有用,.background()这样您就可以在当前视图后面添加任何类型的视图。不仅限于颜色,您的背景可以是图像,也可以是更复杂的形状。但是,当我使用.foregroundColor()修饰符时,我会利用这样的事实,即Color通过提供像这样的参数来期望a .blue。您不能
转载 2023-06-06 14:09:45
318阅读
前言首先呢,为什么会有PageView嵌套PageView这个需求……我们来看下抖音的交互:抖音交互从图上不难分析出,首页里面放了2个tab,右边的菜单栏则是独立存在的一个页面再加上嵌套滑动,所以实现方式就是,PageView里面再嵌套一个布局,首页那块无法就是在这个嵌套布局中加入一个TabBarView就好了嘛,菜单栏用状态管理来更新菜单内容,so easy~然而事实证明我还是太年轻了……Tab
  • 1
  • 2
  • 3
  • 4
  • 5