我正在查看这个 SwiftUI 教程,它表明我可以在命令单击代码中的 SwiftUI 元素时看到额外的操作。在我的 Xcode 中,这会将我跳转到类定义。
我看到 XCode 11.0 中有一个选项可以更改 Option 键以显示 SwiftUI 检查器,但是,这仍然不允许我使用“嵌入 VStack”等操作修改 SwiftUI 代码元素
与 SwiftUI 代码(不是预览)交互时,如何获得检查器和额外的 SwiftUI 操作?
我最近一直在研究抽象方法,我不明白为什么我们需要它们?我的意思是,毕竟,我们只是压倒了它们。你知道它只是一个声明吗?我们为什么需要它们?
此外,我尝试从互联网上理解这一点,到处都有解释,比如想象有一个抽象类人类,然后它的子类被禁用和未禁用,然后人类类中的抽象函数walking()将包含不同的主体或代码。现在我要说的是为什么我们不在禁用和未禁用的子类中创建一个函数而不是覆盖。因此再次回到第一段中的问题。请解释一下。
我正在尝试present使用视图控制器,以防状态(一个Int?)为零,如下所示:
guard let statusCode = status else {
DispatchQueue.main.async() {
let initViewController = self.storyboard!.instantiateViewController(withIdentifier: "SignInViewController")
self.present(initViewController, animated: false, completion: nil)
}
return
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是最佳实践,因为在呈现视图控制器后返回并没有多大意义,但它在guard语句中是必需的,因为guard语句不能落空。
我在视图控制器中有以下视图层次结构:
视图->子视图->按钮
该按钮必须放置在右侧,与总屏幕宽度成一定比例的距离。子视图(按钮的超级视图)的前导和尾随约束为零。现在在故事板中,我对按钮的前缘有以下约束:
按钮.前导 = 343/375*尾随
当我运行应用程序时,按钮位于正确的位置,但出现以下自动布局错误:
[LayoutConstraints] Could not resolve symbolic constant for constraint, because: Attributes must match for NSSpace between view and superview.
mismatched attributes: leading of <UIButton: 0x7f86efd51410; frame = (378.667 -1.33333; 8 21); opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x600000433780>>, and trailing of <UIView: 0x7f86efe42410; frame = (0 60; 414 277); autoresize = RM+BM; gestureRecognizers = <NSArray: 0x600000447830>; layer = <CALayer: 0x60c000238660>>
Use a symbolic breakpoint at NSLayoutConstraintFailedToFindDefaultResolvedValueForSymbolicConstant to debug.
Run Code Online (Sandbox Code Playgroud) 使用关联值定义枚举的语法可在Swift 4.2中正常使用
enum NetworkService {
case lookUp(type: String)
case allLookUps()
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在Xcode 10.2和Swift 5中转换代码时,抛出错误提示
在这种特殊情况下,为allLookUps()关联值没有任何意义。那么,Swift 5中的最佳实践是什么?
我知道之前已经讨论过这个话题,但我并没有真正找到我要找的东西。
我有那些按钮(底部的屏幕截图)。现在我想添加一个恒定的外发光。除了在 drawable 文件夹中将其保存为 .png 之外,还有另一种可能吗?那会减少很多工作。谢谢!
我试图打开预览但无法打开它。
我已经尝试再次打开工作室,但预览只显示一个空白的白色屏幕,里面没有显示任何内容。当我再次打开它时,它在预览端显示以下消息:
A successful build is needed before the preview can be displayed
Run Code Online (Sandbox Code Playgroud)
构建过程已完成并尝试构建多次,但仍显示相同的错误。
我在里面使用了简单的文字。
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
Run Code Online (Sandbox Code Playgroud)
这是我的全部内容:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Android")
}
}
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
@Preview
@Composable
fun PreviewGreeting() {
Greeting("Android")
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人知道这个问题,请分享答案。
好的,所以,我正在尝试使用 Android Room 为这个项目创建这个数据库。
首先,这是我在 Gradle 文件中关于这个问题的内容:
//Room database
implementation "androidx.lifecycle:lifecycle-viewmodel:2.1.0"
implementation "androidx.room:room-runtime:2.2.3"
kapt "androidx.room:room-compiler:2.2.3"
implementation "androidx.room:room-ktx:2.2.3"
Run Code Online (Sandbox Code Playgroud)
这是道代码:
@Dao
interface DebtsDao {
@Query("SELECT * FROM debts")
fun getDebtsList() : List<Debts>
@Query("SELECT * FROM debts WHERE name LIKE :name")
fun getNamedDebt(name : String) : Debts
@Insert
fun insertInDatabase(debt : Debts)
@Delete
fun deleteFromDatabase(debt : Debts)
}
Run Code Online (Sandbox Code Playgroud)
数据库位:
@Database(entities = arrayOf(Debts::class), version = 1)
abstract class AppDatabase : RoomDatabase()
{
abstract fun debtsDao() : DebtsDao
}
Run Code Online (Sandbox Code Playgroud)
这是我使用它的功能:
fun refreshRecyclerView()
{
val database …Run Code Online (Sandbox Code Playgroud) @EnvironmentObject当与自定义 , 一起使用时,我遇到以下 SwiftUI 错误Shape:
Fatal error: No ObservableObject of type MyObject found. A View.environmentObject(_:) for MyObject may be missing as an ancestor of this view.: file SwiftUI, line 0
Run Code Online (Sandbox Code Playgroud)
仅当我使用Shape返回实例新副本的任何方法(例如stroke().
下面是一个可重现的 Swift Playground 示例:
import SwiftUI
import PlaygroundSupport
class MyObject: ObservableObject {
@Published var size: Int = 100
}
struct MyShape: Shape {
@EnvironmentObject var envObj: MyObject
func path(in rect: CGRect) -> Path {
let path = Path { path in
path.addRect(CGRect(x: …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取应用程序的上下文来打印 Toast 消息。我在Java中使用的函数如下:
Toast.makeText(getApplicationContext(), "Hey! I'm working", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
但现在,我需要在 Kotlin(我开始学习的语言)中实现它,感觉有点失落。我已经尝试了以下代码(在这篇文章中给出),但它不起作用,因为我无法获取应用程序的上下文。
Toast.makeText(this@CoreMainActivity, "Its toast!", Toast.LENGTH_LONG).show()
Run Code Online (Sandbox Code Playgroud)
另外,我无法获取文档getApplicationContext()中描述的上下文。
我很高兴知道如何调用getApplicationContext(),并了解到底this@CoreMainActivity是做什么的(在帖子中this@CoreMainActivity)。请注意,这coreMainActivity是一个 Java 文件。
谢谢!
我正在创建一个Form使用SwiftUI. 在我的内部Form,我有一个DatePicker,,TextField和一个SegmentedPickerStyle。
我TextField正在使用 a .decimalPad,我正在尝试找到完成打字后关闭键盘的最佳方法。
我尝试添加 a.onTapGesture但它阻止我使用任何选择器。当我点击它们时什么也没有发生。
这是我正在尝试做的事情:
struct ContentView: View {
@State var date = Date()
@State var price = ""
@State private var tipPercentage = 2
let tipPercentages = [10, 15, 20, 25, 0]
var body: some View {
NavigationView {
Form {
Section {
DatePicker(selection: $date, displayedComponents: .date) {
Text("Date").bold().foregroundColor(Color.init(red: 100.0/255.0, green: 208.0/255.0, blue: 100.0/255.0))
}
HStack {
Text("Price"))
Spacer() …Run Code Online (Sandbox Code Playgroud) GroupingHelper 是在应用程序本身的 helper 包中定义的一个类,而不是来自第三方库。尽管如此,在运行时仍未找到 GroupingHelper,并且出现以下崩溃:
--------- beginning of crash
05-08 18:18:33.181 24111-24111/com.pkg.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.pkg.app, PID: 24111
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/pkg/app/helpers/GroupingHelper$$Lambda$0;
at com.pkg.app.helpers.GroupingHelper.<init>(GroupingHelper.java:21)
at com.pkg.app.activities.TransactionActivity.<init>(TransactionActivity.java:35)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1072)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2473)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.pkg.app.helpers.GroupingHelper$$Lambda$0" on path: DexPathList[[zip file "/data/app/com.pkg.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.pkg.app-1/lib/arm64, /data/app/com.pkg.app-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at com.pkg.app.helpers.GroupingHelper.<init>(GroupingHelper.java:21)
at com.pkg.app.activities.TransactionActivity.<init>(TransactionActivity.java:35) …Run Code Online (Sandbox Code Playgroud) android noclassdeffounderror guava runtimeexception android-multidex
人们已经知道这看起来很简单,但 Stackoverflow 没有给我答案。基本上我想让图像变暗,就像下面北京古建筑的背景图像一样:
使其变暗,以便其上的标签对比更加明显。
我尝试添加一个图层(Stackoverflow 的答案之一)或添加tintColor,但它们都不起作用,有没有任何方法可以真正起作用?感谢你们。
我使用的是 iOS 13 和 swift 5.1