我正在使用Storyboard开发一个Swift项目,我希望文本包含在标签中.在我没有使用故事板的旧Objective-C版本中,我使用了以下设置,并且工作完美.

以下是Swift的设置

我一直在阅读有关首选宽度设置的潜在自动布局问题.我目前将它们设置为自动布局,标签本身设置为宽度560.我添加了一个约束,使标签与尾随的超级视图保持20像素,虽然我认为这样可行但我仍然无法获取文本包裹.尺寸设置如下.

有人可以解释如何包装文本吗?
我最近使用 Swift Package Manager 安装了 Firebase。安装它时,我被要求选择我想要包含的库。
添加几个这样的库后不久,我想添加另一个。我能弄清楚如何添加新的唯一方法是删除完整的 Firebase 软件包并使用我需要的附加软件包重新安装它。有没有一种方法可以简单地添加另一个包,而无需先完全删除 Firebase 包?
我是 SvelteKit 的新手,并且已经根据 SvelteKit 文档构建了一个初始项目。当项目打开时,我在查看 index.svelte 时收到以下错误。
svelte.config.js 中的错误
错误 [ERR_MODULE_NOT_FOUND]:找不到从 /Users/.../svelte.config.js 导入的包“@sveltejs/adapter-auto”
package.json 文件
"devDependencies": {
"@sveltejs/adapter-auto": "next",
"@sveltejs/kit": "next",
"prettier": "^2.5.1",
"prettier-plugin-svelte": "^2.5.0",
"svelte": "^3.44.0",
"svelte-check": "^2.2.6",
"typescript": "~4.6.2"
},
Run Code Online (Sandbox Code Playgroud)
svelte.config.js 文件
import adapter from '@sveltejs/adapter-auto';
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
adapter: adapter()
}
};
export default config;
Run Code Online (Sandbox Code Playgroud)
当项目构建时,它到处都会抛出错误。任何帮助,将不胜感激。
我无法理解为什么下面的代码无法编译。我收到一条错误消息,指出我必须遵守 ObservableObject,但我不明白为什么不这样做。
我已经简化以表明我正在看到。我有两节课。第二个观察第一个,然后视图观察第二个。
头等舱
import Foundation
import SwiftUI
import CoreBluetooth
class BLEPeripheralDevice: NSObject, ObservableObject {
@Published var bodySesnorLocation: String = ""
}
Run Code Online (Sandbox Code Playgroud)
二等舱
import Foundation
import SwiftUI
import CoreBluetooth
class BLEManager: NSObject, ObservableObject {
@ObservedObject var blePeripheralDevice: BLEPeripheralDevice!
@Published var blePeripheralName: String = ""
}
Run Code Online (Sandbox Code Playgroud)
看法
import SwiftUI
struct BluetoothDeviceView: View {
@ObservedObject var bleManager = BLEManager()
var body: some View {
VStack (spacing: 10) {
Text("Bluetooth Devices")
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译此代码时,我在以下行的第二类中收到错误。
@ObservedObject var blePeripheralDevice: BLEPeripheralDevice!
Run Code Online (Sandbox Code Playgroud)
通用结构“ObservedObject”需要“BLEPeripheralDevice?” 符合“ObservableObject”
我不明白为什么会这样。任何帮助表示赞赏。
我正在开发一个 SwiftUI 项目,该项目使用合并从 Firebase Firestore 中提取数据。每个用户都可以在应用程序中创建“优惠”。为了在他们的帐户页面上列出他们的报价,我使用 onAppear 将 currentUserUid 传递到我的视图模型,以便我可以使用 currentUserUid 过滤数据库结果。OfferHistoryView 如下。当视图第一次出现时,这非常有效。我的问题是当我从 OfferDetailView 返回时,我收到以下消息。
ForEach<Array, String, NavigationLink<OfferRowView, ModifiedContent<OfferDetailView, _EnvironmentKeyWritingModifier<Optional>>>>:ID 在集合中出现多次,这将给出未定义的结果!
虽然这不会使应用程序崩溃,但并不理想。我尝试过,每次加载视图时以及每次调用组合时都从集合中删除所有项目,但这并不能解决问题。我还添加了打印语句来尝试捕获重复项,但我从未看到重复项。您可以在下面看到我的打印语句和其余相应文件。任何帮助,将不胜感激。
OfferViewHistory - 消息的来源。
struct OfferHistoryView: View {
let db = Firestore.firestore()
@EnvironmentObject var authSession: AuthSession
@EnvironmentObject var offerHistoryViewModel: OfferHistoryViewModel
var body: some View {
return VStack {
List {
ForEach(self.offerHistoryViewModel.offerRowViewModels, id: \.id) { offerRowViewModel in
NavigationLink(destination: OfferDetailView(offerDetailViewModel: OfferDetailViewModel(offer: offerRowViewModel.offer, listing: offerRowViewModel.listing ?? testListing1))
.environmentObject(authSession)
) {
OfferRowView(offerRowViewModel: offerRowViewModel)
}
} // ForEach
} // List
.navigationBarTitle("Offer History")
} …Run Code Online (Sandbox Code Playgroud) 我正在开发一个新项目,并且为UI使用了故事板。我所有的tableViews的行分隔符都有问题。下图显示了两行。第一个是在属性检查器中设置的蓝色。第二个是黑色,并添加了我放置在单元格中的imageView。该线确实延伸到单元的右侧,但没有延伸到左侧。有任何想法吗?

我正在通过Swift攻击我的方式.我喜欢它,但我发现自己认为一些事情可能过于简单,我怀疑它是否正确.
我正在从Objective-C转换项目.在项目中,我有一个在方法中使用的字符串属性.在Objective-C中,我做了以下操作来初始化和分配对象.一旦初始化并分配,我将其设置为空字符串.
NSMutableString *tempString = [[NSMutableString alloc] init];
self.currentParsedCharacterData = tempString;
[currentParsedCharacterData setString: @""];
Run Code Online (Sandbox Code Playgroud)
在Swift我键入以下内容.这真的很容易还是我错过了什么?
self.currentParsedCharacterData = ""
Run Code Online (Sandbox Code Playgroud)
我发现自己想要做以下事情,但我不确定是否有必要.
var tempString : String = ""
self.currentParsedCharacterData = tempString
Run Code Online (Sandbox Code Playgroud)
照顾自己,
乔恩
我在设计故事板时遇到了问题.我目前在应用程序商店中有一个使用XIB文件设计的应用程序.我有一个放在UIViewController上的tableView - 而不是tableViewController - 为所选的每一行加载一个唯一的viewController.
我试图将这个概念转换为故事板.我做了以下事情
在故事板中放置一个UIViewController.
在UIViewController上放置一个UITableView,这样我就可以自定义表视图.
我尝试从UITableViewCell连接到多个ViewControllers,我不被允许.
我尝试从UIViewController创建多个segue - 我可以 - 但是当我点击单元格时,不会触发segue.我尝试使用didSelectRowAtIndexPath:和prepareForSegue:
由于这不起作用,我尝试使用UITableViewController创建一个项目,然后从UITableViewController创建多个segue.然后我命名每个segue并使用didSelectRowAtIndexPath:方法来测试所选单元格并调用performSegueWithIdentifier:这不起作用.当我点击单元格时,我会随机加载不正确的viewController.我复制了一些我的代码,下面几张屏幕截图.
我想知道我是否公然遗漏了一些明显的东西,还是我必须恢复到这种类型的项目的xib格式?
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
{
if indexPath.row == 0
{
println("Segue1")
self.performSegueWithIdentifier("Segue1", sender: self)
}
else if indexPath.row == 1
{
println("Segue2")
self.performSegueWithIdentifier("Segue2", sender: self)
}
else if indexPath.row == 2
{
println("Segue3")
self.performSegueWithIdentifier("Segue3", sender: self)
}
}
Run Code Online (Sandbox Code Playgroud)

照顾自己,
乔恩
我最近下载了Xcode 7和Swift 2.0.在Swift 1.2中,我使用以下代码设置了一个计时器.
let timer = NSTimer.scheduledTimerWithTimeInterval(8.0, target: self, selector: Selector("didTimeout"), userInfo: nil, repeats: false)
Run Code Online (Sandbox Code Playgroud)
我只是安排一个计时器,我不会在任何地方使用定时器.
我的理解是,为了做到这一点,我不得不使用"let timer ="部分.
使用Swift 2.0,我收到以下警告.
永远不会使用不可变值'timer'的初始化; 考虑将赋值替换为'_'或删除它.
我之前从未见过使用_所以我只是用下面的行代替上面的行.
NSTimer.scheduledTimerWithTimeInterval(8.0, target: self, selector: Selector("didTimeout"), userInfo: nil, repeats: false)
Run Code Online (Sandbox Code Playgroud)
没有使用"让计时器"或"var计时器"在Swift中一直没问题,或者这是Swift 2.0中的新功能?
我正在开发一个 SwiftUI 项目。我创建了一个自定义按钮,可以向其传递函数。这看起来如下所示。
自定义按钮
struct CustomButton: View {
let buttonTitle: String
var function: () -> Void
var body: some View {
Button(action: {
self.function()
}, label: {
Text(self.buttonTitle)
}) // Button - Login
} // View
}
Run Code Online (Sandbox Code Playgroud)
在使用它的视图中,我可以执行以下操作。
struct NewView: View {
var body: some View {
CustomButton(buttonTitle: "Custom Button", function: myFunc)
}
}
func myFunc() {
print("My Custom Button Tapped")
}
Run Code Online (Sandbox Code Playgroud)
这确实有效。
我现在想做的是将参数传递给函数。我在这方面遇到了麻烦。我尝试了以下方法。
struct CustomButton: View {
let buttonTitle: String
var function: (String) -> Void
var body: some View …Run Code Online (Sandbox Code Playgroud) swift ×6
storyboard ×2
swiftui ×2
autolayout ×1
combine ×1
segue ×1
sveltekit ×1
swiftui-list ×1
uilabel ×1
xcode6 ×1