我正在为 iOS 应用程序创建一个框架。它将包含一些标签、按钮、列表……全部作为 SwiftUI 视图,但采用特殊设计。在框架中,我添加了一个名为“ContentView”的 SwiftUI 视图,它的目的只是(视觉上)测试画布中的 UI 元素,稍后 ContentView 将被删除。我想为标签设计添加自定义字体,我知道该怎么做:
但自定义字体(我已经在其他项目(iOS 应用程序)中成功尝试过)未显示在我的 ContentView 中。没有编译错误或任何警告,可以构建框架并且 ContentView 在画布中很好地呈现。只是字体错误。
我尝试重新启动Xcode,删除并添加多次字体,但没有成功。所以这是我的问题:
谢谢你的帮助。
大家好,很遗憾,我坚持了下来,最近三天尝试了很多事情之后,我必须在这里寻求帮助。
我有一个应用程序,已经在AppStore中使用了很多年,并且运行时没有崩溃(最新部署目标是iOS 12.4)。我有一些用于在应用程序中的某些事件上播放声音的代码。
现在,我尝试升级适用于iOS 13的应用程序,并且在不更改与该“ playSound”事物相关的任何代码的情况下,在真实设备上进行测试时,总是会遇到此运行时错误。在模拟器上不会发生。
线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x48)
请:在将该问题标记为“重复”之前,请考虑这与iOS13的发布有关,因为在未发生之前,代码只是“正常”的。
这是我的代码,也在gitHub上。
我的ViewController中有一个属性,可以防止ARC取消分配我的AVAudioPlayer:
private var mySoundPlayer: AVAudioPlayer = AVAudioPlayer()
Run Code Online (Sandbox Code Playgroud)
我有一个例程,应该在其中执行“播放声音”(在分配 AVAudioPlayer的新实例时会发生此错误。resourceURL不是问题,RE-ASSIGNING是问题,我使用新实例对其进行了测试没有被分配,我没有崩溃。
// -------------------------------------------------
// MARK: Private Methods
// -------------------------------------------------
private func makeSoundEvent(_ soundEvent : SoundEvent) {
guard Settings().getSound() == .soundON else { return }
guard let urlToRessource : URL = soundEvent.getFileURLToSoundRessource() else { return }
do {
mySoundPlayer = try …Run Code Online (Sandbox Code Playgroud) 从 iOS 11.4 到 iOS12,Foundation 发生了一些变化。不幸的是我找不到关于这个主题的任何有用的文档。
在 iOS12 之前,我让这段代码可以完美地从某个文件路径读取带有字符串的数组:
if let myList : Array<String> = NSKeyedUnarchiver.unarchiveObject(withFile: filePath) as? Array<String> {
// ...
}
Run Code Online (Sandbox Code Playgroud)
正如我发现的,iOS12 中有一些我应该使用的新方法,我尝试了这个(当然是在 do-catch-结构中,并且在获取数据对象之后):
let myList : Array<String> = try NSKeyedUnarchiver.unarchivedObject(ofClass: Array<String>, from: data)
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个但没有成功:
let myList : Array<String> = try NSKeyedUnarchiver.unarchivedObject(ofClass: Array<String>.self, from: data)
Run Code Online (Sandbox Code Playgroud)
有什么推荐吗?
我想创建一个4 行 24 个项目的网格,因此每行应该有 6 个项目。无论网格在什么设备上渲染,所有项目都应该大小相同,但填充整个可用空间。
我已经实现了行的灵活高度,但是 GridItems 不会在水平维度上推出,尽管它是一个形状,据说是推出的。在 LazyHGrid 中,它似乎不会被推出。
这是我的代码:
struct AllAchievementsView: View {
var gridRows: Array<GridItem> { [GridItem(), GridItem(), GridItem(), GridItem()] }
var body: some View {
ZStack {
Color.black
LazyHGrid(rows: gridRows) {
ForEach(0..<24) { index in
RoundedRectangle(cornerRadius: 10).foregroundColor(.blue)
}
}.padding()
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了 GridItem 大小调整的所有变体,我尝试使用 .infity 在我的矩形上添加框架,等等,但无法实现。我真的必须使用 GeometryReader 以编程方式进行数学计算吗?
我添加两张图像:一张显示此代码的结果,另一张显示我想要实现的内容。
你好iOS和Swift的大师,
经过两个令人沮丧的日子,我拼命地决定在这里问.问题:
添加CAGradientLayer时,不显示子视图.
细节:
任何想法将不胜感激!提前致谢.
这听起来并不太难,但经过几个小时的尝试后,我无法得到合适的解决方案.
问题:我想设置约束(使用类NSLayoutAnchor)以获得以超视图为中心的子视图(colorImageView),纵横比为1:1并且总是处于有时具有宽度>高度的超视图中的最大尺寸或高度>宽度.
示例1:SuperViewSize = width:80,height = 100 - > subview应获得80的高度和宽度,并以(40/50)为中心
示例2:SuperviewSize = width:60,height = 50 - >子视图的高度和宽度应为50并且以(30/25)为中心
我不想/并且它没有解决问题/硬编码widthConstraint = min(superviewWidth,superviewHeight)因为在创建子视图的那一刻,超视图边界没有最终定义 - >所以我需要一个约束.
这是我到目前为止的尝试(仍然缺少在不同的超视图中最大可能设置高度和宽度的约束:
// CREATE CONSTRAINTS(center in SuperView)
colorImageView.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
colorImageView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
// CREATE CONSTRAINTS (ratio 1:1)
colorImageView.widthAnchor.constraint(equalTo: colorImageView.heightAnchor, multiplier: 1.0).isActive = true
Run Code Online (Sandbox Code Playgroud)
我真的很感激一个暗示,怎么做.提前致谢 :))
ios ×3
swift ×3
swiftui ×2
arrays ×1
autolayout ×1
frameworks ×1
grid ×1
layout ×1
lazyhgrid ×1