小编Jos*_*osh的帖子

iOS SwiftUI 在与代码交互时如何调出诸如“嵌入 VStack”之类的额外操作?

我正在查看这个 SwiftUI 教程,它表明我可以在命令单击代码中的 SwiftUI 元素时看到额外的操作。在我的 Xcode 中,这会将我跳转到类定义。

在此处输入图片说明

我看到 XCode 11.0 中有一个选项可以更改 Option 键以显示 SwiftUI 检查器,但是,这仍然不允许我使用“嵌入 VStack”等操作修改 SwiftUI 代码元素

与 SwiftUI 代码(不是预览)交互时,如何获得检查器和额外的 SwiftUI 操作?

在此处输入图片说明

在此处输入图片说明

ios13 swiftui xcode11

12
推荐指数
3
解决办法
3703
查看次数

为什么我们需要抽象方法?

我最近一直在研究抽象方法,我不明白为什么我们需要它们?我的意思是,毕竟,我们只是压倒了它们。你知道它只是一个声明吗?我们为什么需要它们?

此外,我尝试从互联网上理解这一点,到处都有解释,比如想象有一个抽象类人类,然后它的子类被禁用未禁用,然后人类类中的抽象函数walking()将包含不同的主体或代码。现在我要说的是为什么我们不在禁用和未禁用的子类中创建一个函数而不是覆盖。因此再次回到第一段中的问题。请解释一下。

java inheritance multiple-inheritance

6
推荐指数
2
解决办法
143
查看次数

在guard语句中显示一个ViewController swift

我正在尝试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语句不能落空。

guard ios presentviewcontroller swift

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

视图和超级视图之间的 NSSpace 属性必须匹配(自动布局)

我在视图控制器中有以下视图层次结构:

视图->子视图->按钮

该按钮必须放置在右侧,与总屏幕宽度成一定比例的距离。子视图(按钮的超级视图)的前导和尾随约束为零。现在在故事板中,我对按钮的前缘有以下约束:

按钮.前导 = 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)

ios autolayout swift

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

具有关联值的Enum元素必须至少具有一个关联值

使用关联值定义枚举的语法可在Swift 4.2中正常使用

enum NetworkService {
    case lookUp(type: String)
    case allLookUps()
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在Xcode 10.2和Swift 5中转换代码时,抛出错误提示

具有关联值的Enum元素必须至少具有一个关联值 在此处输入图片说明

在这种特殊情况下,为allLookUps()关联值没有任何意义。那么,Swift 5中的最佳实践是什么?

swift

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

如何在android中使用渐变阴影按钮制作渐变恒光?

我知道之前已经讨论过这个话题,但我并没有真正找到我要找的东西。

我有那些按钮(底部的屏幕截图)。现在我想添加一个恒定的外发光。除了在 drawable 文件夹中将其保存为 .png 之外,还有另一种可能吗?那会减少很多工作。谢谢!

在此处输入图片说明

android glow android-button

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

需要一个成功的构建才能在Android Studio 4.0 Canary中显示预览或无法在预览中显示内容

我试图打开预览但无法打开它。

我已经尝试再次打开工作室,但预览只显示一个空白的白色屏幕,里面没有显示任何内容。当我再次打开它时,它在预览端显示以下消息:

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 kotlin android-jetpack-compose android-studio-4.0

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

错误:无法访问主线程上的数据库,因为它可能会长时间锁定 UI。- 使用 Kotlin 的 Android Room

好的,所以,我正在尝试使用 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)

mobile android kotlin android-room android-jetpack

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

在 SwiftUI 中找不到子形状的环境对象

@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)

swiftui

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

无法获取应用程序上下文(未解析的参考)

我正在尝试获取应用程序的上下文来打印 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 文件。

谢谢!

android kotlin

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

onTapGesture 禁用我的选取器和分段点击

我正在创建一个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)

picker gesture ios swiftui

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

java.lang.NoClassDefFoundError:解析失败:Lenovo K4 Note上的应用类运行android 6,API 23

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

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

只是想添加一个变暗层或通过 Swift 使 UIImageView 变暗

人们已经知道这看起来很简单,但 Stackoverflow 没有给我答案。基本上我想让图像变暗,就像下面北京古建筑的背景图像一样:

在此输入图像描述

使其变暗,以便其上的标签对比更加明显。

我尝试添加一个图层(Stackoverflow 的答案之一)或添加tintColor,但它们都不起作用,有没有任何方法可以真正起作用?感谢你们。

我使用的是 iOS 13 和 swift 5.1

ios swift

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