我试图将多个单元格彼此相邻放置,其中每个单元格由下面的图像和文本组成。单元格本身应该是一个正方形,并且应该缩放图像以填充剩余空间(剪切图像的一部分)。
首先,我尝试将图像和下面的文字制作成正方形。现在我的问题是,我不知道如何在 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 的纵横比并且可以调整大小,因此我可以将它们的动态数量放在彼此相邻的屏幕上。
我也尝试使用
VStack {
Image(uiImage: recipe.image!)
.resizable()
.aspectRatio(1.0, contentMode: .fit)
.clipped()
Text(recipe.name)
}
Run Code Online (Sandbox Code Playgroud)
这给了我方形图像,动态缩放。但问题是,图像现在被拉伸以填充正方形而不是缩放以填充它。
我的下一个想法是把它剪成方形。为此,我首先尝试将其剪成圆形(因为显然没有方形):
VStack {
Image(uiImage: recipe.image!)
.resizable()
.aspectRatio(1.0, contentMode: .fit)
.clipped()
Text(recipe.name)
}
Run Code Online (Sandbox Code Playgroud)
但是出于某种奇怪的原因,它并没有真正剪辑图像,而是保留了剩余的空间......
那么我是不是没有看到任何东西,或者是将图像裁剪成框架修改器的唯一选项?
澄清:我不太关心文本,因为整个单元格(或者图像更简单)是方形的,无需通过.frame非方形原始图像指定其大小,也无需拉伸非方形原始图像以使其成为合身。
所以完美的解决方案是 VStack 是方形的,但获得方形图像也可以。它应该看起来像图像 1,但不必使用.frame修饰符。
我正在尝试在我的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等等?
在此先感谢,
乔纳斯
所以我有以下问题:
在我的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 7中的Swift文件中写任何内容时,每次输入一个字母,一个空格或删除任何内容时,该行中突出显示的单词语法将变为白色,然后再返回其原始颜色.我录了一个gif,更好的解释,我的意思是:
在我安装了恶魔岛和一些插件之后,这首次出现了.在我注意到这个bug后,我删除了所有插件,然后删除了Alcatraz,但是bug仍然存在.我也尝试删除Derived Data几个帖子中建议的文件夹,但它没有帮助.
我还创建了一个新项目,但也发生了错误.下载Xcode 7.3 beta,也没有帮助.
是否有人有相同的问题或知道,如何解决它?真的很烦人.
初始化@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变量时首选使用其中之一吗?
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) swift ×4
ios ×3
swiftui ×3
xcode ×2
combine ×1
compilation ×1
editor ×1
frameworks ×1
linux ×1
list ×1
macos ×1
nsnetservice ×1