小编iCo*_*eak的帖子

在 SwiftUI 中将图像裁剪为正方形

我试图将多个单元格彼此相邻放置,其中每个单元格由下面的图像和文本组成。单元格本身应该是一个正方形,并且应该缩放图像以填充剩余空间(剪切图像的一部分)。

首先,我尝试将图像和下面的文字制作成正方形。现在我的问题是,我不知道如何在 SwiftUI 中正确实现。使用此代码时,我可以让它工作:

VStack {
    Image(uiImage: recipe.image!)
        .resizable()
        .aspectRatio(contentMode: .fill)
        .frame(width: 200, height: 200, alignment: .center)
        .clipped()
    Text(recipe.name)
}
Run Code Online (Sandbox Code Playgroud)

图 1 问题是,我必须指定一个固定的帧大小。我想要的是一种制作单元格的方法,它保持 1:1 的纵横比并且可以调整大小,因此我可以将它们的动态数量放在彼此相邻的屏幕上。

我也尝试使用

VStack {
    Image(uiImage: recipe.image!)
        .resizable()
        .aspectRatio(1.0, contentMode: .fit)
        .clipped()
    Text(recipe.name)
}
Run Code Online (Sandbox Code Playgroud)

图 2 这给了我方形图像,动态缩放。但问题是,图像现在被拉伸以填充正方形而不是缩放以填充它。

我的下一个想法是把它剪成方形。为此,我首先尝试将其剪成圆形(因为显然没有方形):

VStack {
    Image(uiImage: recipe.image!)
        .resizable()
        .aspectRatio(1.0, contentMode: .fit)
        .clipped()
    Text(recipe.name)
}
Run Code Online (Sandbox Code Playgroud)

图 3

但是出于某种奇怪的原因,它并没有真正剪辑图像,而是保留了剩余的空间......

那么我是不是没有看到任何东西,或者是将图像裁剪成框架修改器的唯一选项?

编辑

澄清:我不太关心文本,因为整个单元格(或者图像更简单)是方形的,无需通过.frame非方形原始图像指定其大小,也无需拉伸非方形原始图像以使其成为合身。

所以完美的解决方案是 VStack 是方形的,但获得方形图像也可以。它应该看起来像图像 1,但不必使用.frame修饰符。

ios swiftui

13
推荐指数
2
解决办法
7839
查看次数

如何在macOS上为Linux构建swift可执行文件

我正在尝试在我的MacBook上为我的Linux vServer构建一个swift可执行文件.

我已经尝试过使用swiftc -target "x86_64-linux test.swift,但是我的macOS swift编译器显示了这个错误:<unknown>:0: error: unable to load standard library for target 'x86_64--linux'

所以我环顾四周,发现了这个问题:Swift on OS X为Linux编译?并从apple 尝试了这个示例脚本来设置跨平台工具链.

在尝试构建一个像脚本的示例文本中所示的模块之后,它编译了,但是在我的linux机器上我现在得到了这个错误:error while loading shared libraries: libswiftCore.so: cannot open shared object file: No such file or directory这很奇怪,因为swift已正确安装在我的Linux机器上并正常工作.

那么在交叉编译项目时我做错了什么,或者我的Linux机器上有问题吗?另外我想知道,如果有更简单的方法在macOS上编译Linux项目,比如更改Xcode中的Build Settings等等?

在此先感谢,
乔纳斯

linux macos compilation cross-compiling swift

7
推荐指数
1
解决办法
931
查看次数

dyld:找不到符号:_OBJC_CLASS _ $ _ NSNetService错误

所以我有以下问题:

在我的iPhone 5s上在iOS 8上启动我的应用程序,我没有错误,但在我的iPhone 3GS上在iOS 6.1.3上启动我的应用程序,我收到此错误:

dyld: Symbol not found: _OBJC_CLASS_$_NSNetService
Referenced from: /var/mobile/Applications/567E221A-FC5C-4011-90AD-E47E5FF033B1/BellyClient.app/BellyClient
Expected in: /System/Library/Frameworks/CFNetwork.framework/CFNetwork
in /var/mobile/Applications/567E221A-FC5C-4011-90AD-E47E5FF033B1/BellyClient.app/BellyClient
Run Code Online (Sandbox Code Playgroud)

我导入了一个名为Server的类.该类使用CFNetwork.framework,其中包含自iOS 2.0以来可用的NSNetService类.

使用NSClassFromString(@"NSNetService")并不是我喜欢的解决方案.我也不知道,为什么会出现这种错误,因为类NSNetService应该在iOS 6中可用.它可能是设备吗?

我搜索并发现,将框架设置为Optional,将解决此问题.但问题是,当我在iOS 6上运行应用程序时,我无法使用该框架.当我这样做时

if ([NSNetService class] == nil) {
    NSLog(@"NSNetService is nil");
}
Run Code Online (Sandbox Code Playgroud)

我得到印刷NSNetService是零.

是否可以在不崩溃的情况下启动应用程序,而无需将框架设置为Optional

谢谢iComputerfreak

xcode frameworks nsnetservice ios

6
推荐指数
1
解决办法
2276
查看次数

Xcode 7.2语法突出显示Swift文件中的闪烁

当我在Xcode 7中的Swift文件中写任何内容时,每次输入一个字母,一个空格或删除任何内容时,该行中突出显示的单词语法将变为白色,然后再返回其原始颜色.我录了一个gif,更好的解释,我的意思是:

窃听器

在我安装了恶魔岛和一些插件之后,这首次出现了.在我注意到这个bug后,我删除了所有插件,然后删除了Alcatraz,但是bug仍然存在.我也尝试删除Derived Data几个帖子中建议的文件夹,但它没有帮助.

我还创建了一个新项目,但也发生了错误.下载Xcode 7.3 beta,也没有帮助.

是否有人有相同的问题或知道,如何解决它?真的很烦人.

xcode editor ios swift

5
推荐指数
1
解决办法
407
查看次数

SwiftUI 状态初始值设定项之间的区别

初始化@State变量时,有两个初始化器:

/// Initialize with the provided initial value.
public init(wrappedValue value: Value)

/// Initialize with the provided initial value.
public init(initialValue value: Value)
Run Code Online (Sandbox Code Playgroud)

两个初始值设定项之间有区别还是它们的作用相同?创建新@State变量时首选使用其中之一吗?

swift swiftui

5
推荐指数
1
解决办法
398
查看次数

Create a List with an array of custom classes in SwiftUI

I tried creating a list of custom classes in SwiftUI, but keep having problems with the UI updates. I made my class conform to BindableObject and it calls the didChange.send() function correctly when a property changes, but the change doesn't seem to get passed through to the array, as the view does not update, when I change a property of my custom class in the array.

Here is a basic example of what I mean:

class Media: BindableObject, Identifiable { …
Run Code Online (Sandbox Code Playgroud)

list swift swiftui combine

1
推荐指数
1
解决办法
1070
查看次数