展开

关键词

SwiftUI和图片

SwiftUI有两种方式,具体取决于外观。制作最简单方法是当它仅包含一些文本时:传递标题,以及点击时应运行闭包:Button(Tap me!) 当您要将图片时,这尤其常见。 或者,如果他们实际添加屏幕其他地方尚信息,请使用Image(decorative: pencil)初始化程序。 { Image(systemName: pencil) Text(Edit) }}提:如果您发现图像已被某种颜色填充,例如为纯蓝色而不是实际图片,则可能是SwiftUI为它们着色以它们是可点击 要解决此问题,请使用renderingMode(.original)修饰强制SwiftUI原始图像,而不是重新着色版本。

69530

Hacking with iOS: SwiftUI Edition - Hot Prospects项目(二)

CodeScanner软件包为我们提供了一个CodeScanner SwiftUI视图,该视图可以表单,并以干净,隔离方式处理代码扫描。 ProspectsView已经有一个“扫码”,我们将使用该来触发QR扫描。 现,我们准备扫描一些二维码了!我们已经具有isShowingScanner状态,该状态确定是否代码扫描器,因此我们现可以附加sheet()修饰扫描器UI。 一种简单选择是设置标题时使用三元运算,因此我们可以将这样下文菜单附加到VStack:.contextMenu { Button(prospect.isContacted ? 联系 : 已联系 ) { prospect.isContacted.toggle() }}尽管该文本没问题,并且下文菜单正确,但该操作没有任何作用。

25850
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年38元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hacking with iOS: SwiftUI Edition - Word Scramble 项目——添加一个单词列表

    该应用程序用户界面将由三个主要SwiftUI视图组成:一个NavigationView他们正拼写单词,一个TextField(他们可以输入一个答案)和一个List(他们以前输入所有单词 不过,稍后,我们将添加一些验证,以确保以前从使用过该词,它实际可以从给出初始单词产生,并且是真实词,而不仅仅是一些随机字母。 请现将此添加到文本字段:.autocapitalization(.none)第二件事,我们会改变,因为我们可以,是使用苹果SF图标每个单词长度旁边文字。 SF提供从0到50圆形数字,所有这些数字都使用“x.circle.fill”格式命名—所以我们这样写“1.circle.fill”,“20.circle.fill”。 ) Text($0)}如果现运行该应用程序,您将看到您可以文本字段键入单词,return,然后看到它们滑入列表,并旁边其长度图标。

    20720

    Hacking with iOS: SwiftUI Edition - Flashzilla 项目(三)

    这个应用程序,我们手势引发了多个问题:对于VoiceOver用户来说,他们应该如何控制应用程序并不明:我们不是说卡片是可以点击。当答案被揭时,没有声音通知它是什么。 因此,为了解决这个问题,我们将检测用户是否他们设备启用了辅助功能,如果启用了,会自动答案之间切换。 它们不仅可以阻止用户使用轻触手势与我们应用程序进行交互,而且还可以被读出他们SF名称——“对、圆圈、图像”,而不是任何有用东西。 为了解决这个问题,我们需要用来替换图像,这些实际可以移除卡片。实际,如果用户是对是错,我们不会做任何不同事情——我需要为你挑战留下一些东西!——但我们至少可以从牌堆取出顶部卡片。 accessibility(label: Text(Correct)) .accessibility(hint: Text(Mark your answer as being correct.))}因为这些即使最后一张卡被移除后仍会屏幕

    12210

    Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(二)

    根据 size classes 更改视图布局SwiftUI为我们提供了两个环境值来监视应用程序当前size class,这实际意味着空间有限时可以一种布局,空间足够时可以另一种布局。 将Alert 绑定到可选字SwiftUI允许我们可选值更改时Alert,但是使用可选字串时,这并不是那么简单。为了证明这一点,我们将重写度假村设施方式。 我选择了各种SF图标,这些图标非常适合我们现有设施,并且我还对图像使用了accessibility(label :)修饰,以确保它VoiceOver可以正常使用。 这很容易解决:我们将ResortView滚动视图末尾添加一个,以便用户可以从其收藏夹添加或删除该度假村,然后ContentView一个心形图标以最喜欢度假村。 正如您所看到,因为我们图像使用SF,所以foregroundColor()修饰这里可以很好地工作。

    10520

    Hacking with iOS: SwiftUI Edition - iExpense 项目

    + 时可以AddView。 )}由于以下两个原因,我们尚完成此步骤:原因是我们代码无法编译,即使编译了代码也无法正常工作,因为我们不会触发sheet。 { AddView(expenses: Expenses()) }}第二个问题是我们实际没有任何代码可以工作表,因为现ContentView+会增加测试费用。 我们需要将这两件事放一起:我们需要一个点击该时,会从我们属性创建一个ExpenseItem并将其添加到expenses项目。 ——您现可以添加视图,输入一些详细信息,Save,然后滑动以关闭,然后您将看到自己应用程序列表新项目。

    24030

    Hacking with iOS: SwiftUI Edition - 书虫项目(二)

    书籍详细内容当用户ContentView点击一本书时,我们将一个详细视图,其包含更多信息:书籍类型,简短评论等等。 更好是,因为我们使用SF Symbols创建了评分图像,所以我们可以无缝地使用简单font()修饰将其放大,以更好地利用我们拥有所有空间。 您可以指定多个排序描述,它们将照您提供顺序应用。 从 Core Data 删除数据我们已经使用@FetchRequest将核心数据对象放置到SwiftUI列表,并且只需做一点点工作,就可以启用滑动删除和专用“EditDone”。 就像常规数据数组一样,大多数工作都是通过ForEach附加onDelete(perform:)修饰来完成,而不仅仅是从数组删除项目,我们需要获取请求找到请求对象然后使用它我们托管对象下文调用

    20110

    SwiftUI视图包装UIViewController

    此项目,我们将要求用户从其照片库导入图片。UIKit随附了专用代码来执行此操作,但尚移植到SwiftUI,因此我们需要自己编写桥接。 因此,标签,,文本字段,滑块等等——都是视图。其次,UIKit有一个名为UIViewController类,该类旨保存所有代码以使视图栩栩如生。 我们ImagePicker结构体是有效SwiftUI视图,这意味着我们现可以像其他任何SwiftUI视图一样工作表它。 这个特定结构体旨图像,因此我们需要一个可选Image视图来保存所选图像,以及确定该表是否某种状态。 当您点击时,默认UIKit图像选择器应向滑动,以浏览所有照片,而当您选择其一张时,它将消失。但是,尽管我们刚刚选择了一张图像,但我们视图不会出现任何图像。

    83820

    Hacking with iOS: SwiftUI Edition - Hot Prospects项目(一)

    简介此项目,我们将构建 Hot Prospects,该应用程序可跟踪您会议遇到人。 建立我们 TabBar此应用将标签栏四个SwiftUI视图:一个您遇到所有人,一个您联系人,另一个联系人,最后一个个人信息供其他人扫描。 Cmd + N 新建一个SwiftUI视图,并将其命名为“ ProspectsView”,然后创建另一个名为 “MeView” SwiftUI视图。 这些视图每个视图都有一个tabItem()修饰,其包含从SF Symbols选取图像和一些文本。 记住,我们希望第一个您遇到每个人,第二个您曾经联系人,第三个您尚联系人,我们可以ProspectsView用枚举和属性来表

    16840

    SwiftUI:Alert弹窗

    如果发生重要事件,通知用户一种常见方法是使用警报Alert弹窗-根据您需要,该弹出窗口包含标题,消息和一个或两个。但是请考虑一下:何时应该警报以及如何Alert? 基本SwiftUIAlert具有标题,消息和一个关闭,如下所:Alert(title: Text(Hello SwiftUI!) SwiftUI将观察showingAlert,并它变为true时立即警报。 将和他们放一起,下面是一些例代码,当点击时会警报:struct ContentView: View { @State private var showingAlert = false var ,哪里使用alert()修饰都没关系——我们要做就是让Alert存,并且showAlert为true时

    1.1K20

    SwiftUI:创建式动画

    您已经了解了SwiftUI如何通过将animation()修饰附加到视图来创建隐式动画,以及它如何通过将animation()修饰添加到绑定来创建动画,但是,还有第三种有用方法可以创建动画:式地要求 为了演这一点,让我们再次回到一个简单例:struct ContentView: View { var body: some View { Button(Tap Me) { do nothing 现将此修饰添加到:.rotation3DEffect(.degrees(animationAmount), axis: (x: 0, y: 1, z: 0))现重要一点是:我们将操作添加一些代码 这就是式动画来源:如果我们使用withAnimation()闭包,那么SwiftUI将确保由新状态导致任何更改都将自动设置动画。 所以,现把这个放到Action:withAnimation { self.animationAmount += 360}现运行这段代码,我想你会对它外观印象深刻——每次点击,它就会三维空间旋转

    25120

    SwiftUI:添加导航栏

    默认情况下,iOS允许我们屏幕任何地方放置内容,包括系统时钟和主指器下。 ) } } }}尝试iOS模拟器运行它——Xcode窗口左Play,或者Cmd+R。 一种常见解决方法是屏幕顶部放置一个导航栏。导航栏可以有标题和SwiftUI,它们还让我们能够用户执行操作时新视图。 我们将稍后项目讨论和新视图,但我至少想向您展如何添加导航栏并给它一个标题,因为它使我们表单滚动时看起来更好。 :第一个屏幕用大文本“设置”,随后屏幕用小文本它们标题。

    52920

    SwiftUI:创建底部导航栏 tabBar

    为此,我们需要使用SwiftUI TabView,它会屏幕底部创建一个条,点击每个一个不同视图。 将选项卡放置TabView就像将它们一一列出一样简单,就像这样:TabView { Text(Tab 1) Text(Tab 2)}但是,实际,您始终希望自定义选项卡方式——选项卡栏代码将有一个空白灰色空间 ,或者重新排列它们,以使文本视图位于图像视图之前,但这并不重要:SwiftUI将始终不超过一个图像,并且该顺序最多只能有一个文本视图。 将其作为绑定传递到TabView,因此将自动对其进行跟踪。告诉SwiftUI应该为该属性每个值哪个选项卡。其前三个很简单,因此我们将其排除外。 :您可以通过选项卡选项卡或第一个选项卡激活我们点击手势来选项卡之间切换。

    88810

    SwiftUI:控制动画堆栈

    为了演这一点,我们可以修改代码,以便根据某些状态不同颜色。 首先,我们定义状态:@State private var enabled = falseAction我们可以true和false之间进行切换:self.enabled.toggle()然后, 因此:顺序修饰很重要,我们可以将一个修饰多次附加到视图,并且可以通过animation()修饰使隐式动画发生。到目前为止都清楚吗?那好。保护自己,因为这可能会让你受伤。 为了说明这一点,我希望您所有其他修饰之后将这个修饰添加到:.clipShape(RoundedRectangle(cornerRadius: enabled ? 60 : 0))这将导致根据enabled布尔值状态正方形和圆角矩形之间变化。

    30120

    Combine-实践

    Combine 既可以 SwiftUI 使用,也可以 UIKit 使用。下面分别实践一下。 SwiftUI声明式UI + 响应式编程是来移动开发趋势,所以 Combine 对于 SwiftUI 来说是不可或缺一部分,这也是为什么 Combine 会随着 SwiftUI 一起发布。 SwiftUI 任何一个 View 都可以作为 Subscriber。 SwiftUI View 协议定义了一个onReceive()函数可以将 View 变成 Subscriber。 onReceive()函数接收一个 Publisher,然后跟一个类似于sink闭包,可以操作@State或@Binding修饰属性数据。 如下图案例,当开关打开(关闭)时候,可以(不能)点击,点击发送通知,蓝色标签发送通知内容。?

    35010

    SwiftUI Core Data:动态过滤 @FetchRequest

    我想用一些真实代码来演这一点,因此,我整理了一个最简单例:它将三个歌手添加到Core Data,然后使用两个姓氏以A或S结尾歌手。 ) var moc@State private var lastNameFilter = A对于视图主体,我们将使用带有三个VStack,并注释添加希望List匹配歌手位置:VStack 由于此视图将ContentView使用,因此我们甚至不需要将托管对象下文注入到环境——它将从ContentView继承下文。 :首先点击“添加例”以创建三个歌手对象,然后点击“Show A”或“ Show S”姓氏字母之间切换。 您应该看到我们列表根据不同数据动态更新,具体取决于您是哪个。因此,这项工作需要一点新知识,但实际并没有那么难——只要您像SwiftUI一样思考,解决方案就那里。

    48210

    SwiftUI:创建隐式动画

    这个技术项目,我们将研究SwiftUI一系列动画和过渡。有些很简单——实际,您几乎可以立即获得出色成绩!但是有些需要更多思考。 这段代码了一个简单红色,没有任何动作,使用了50个填充点和一个圆形剪辑形状:Button(Tap Me) { do nothing}.padding(50).background(Color.red 因此,请立即将此属性添加到您视图:@State private var animationAmount: CGFloat = 1现,通过添加以下修饰,可以使将其用于缩放效果:.scaleEffect 例如,我们可以.blur()添加第二个新修饰,它使我们可以添加具有特殊半径高斯模糊:.blur(radius: (animationAmount - 1) * 3)半径(animationAmount -1)* 3表模糊半径将从0开始(无模糊),但是您点击时移至3点,6点,9点,甚至更高。

    19730

    SwiftUI:ActionSheet 弹窗

    SwiftUI给我们Alert提供了一个或两个重要公告,而sheet()给了我们用于当前视图顶部整个视图信息,但是它也为我们提供了ActionSheet:Alert一种替代方案, 视觉警报和操作表非常不同:iPhone,警报屏幕央,必须通过选择一个主动将其关闭,而操作表则从底部向滑动,可以包含多个,并且可以通过点击将其关闭“取消”或通过点击操作表外部 两者都是通过视图层次结构附加一个修饰来创建——用于警报alert()和用于操作表actionSheet()——当条件为真时,两者都会由SwiftUI自动,两者都使用相同类型,并且都具有一些内置 :我们需要文本添加另一个修饰,准备好后创建并操作表。 我们为操作表提供标题和消息,然后是数组。这些您提供顺序垂直堆叠屏幕,通常最好末尾添加一个“取消”——是,您可以通过点击屏幕其他位置来进行取消,但是最好为用户提供明确选项!

    61010

    Hacking with iOS: SwiftUI Edition - 里程碑:项目 4 - 6

    key pointsWhat you learned - 你学到了什么这一点,您应该真开始对SwiftUI工作方式感到满意。 使用List构建数据滚动表,特别是如何直接从数据数组创建行。使用onAppear()视图时运行代码。通过使用Bundle类查找路径,从我们应用程序包读取文件,包括从那里加载字串。 ,然后又真实项目下文(“这里实际使用列表)”),我希望一切都沉浸其。如果没有,请不要害怕回到前面章节来——它们不会走开,所有这些都将帮助您掌握SwiftUI。 对于动画,我们要说是“使该——那里那个——立即旋转”。而且,SwiftUI确实不是为这种命令性设计而设计:我们不能仅仅说“使旋转”。这超出了我之前提到心理碰撞。 请记住,SwiftUI,我们所有视图以及所有动画都必须是我们状态函数。这意味着我们不告诉旋转,而是将旋转量附加到某个状态,然后适当修改该状态。

    17330

    SwiftUI:使用onDelete() 删除项目

    实际,这几乎完全用于List和ForEach:我们创建一个使用ForEach行列表,然后将onDelete()附加到该ForEach,以便用户可以删除不需要行。 这是SwiftUI代替我们做大量工作另一个地方,但是您确实会发现一些有趣且怪异东西。首先,让我们构造一个可以使用例:一个数字列表,每当我们点击时,都会出现一个新数字。 onDelete()修饰仅存于ForEach,因此,如果我们希望用户从列表删除项目,则必须将这些项目放ForEach。 准备就绪后,从右向左列表任何行滑动,您会发现出现一个删除。您可以点击它,也可以通过进一步滑动来使用iOS滑动功能来删除功能。考虑到这很容易,我认为结果确实很好。 但是SwiftUI还有另外一个技巧:我们可以导航栏添加“EditDone,这使用户可以更轻松地删除几行。

    67410

    相关产品

    • 人工智能

      人工智能

      提供全球领先的人脸识别、文字识别、图像识别、语音技术、NLP、人工智能服务平台等多项人工智能技术。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券