小编Bre*_*ett的帖子

如何在 Jetpack Compose 中使底部工作表覆盖整个屏幕

我正在使用 Jetpack Compose 并尝试在用户单击 .txt 文件中的登录按钮时使登录屏幕覆盖整个屏幕TopAppBar

ModalBottomSheetLayout我使用和 a的组合,Scaffold所以我可以有 aTopAppBar和 a BottomAppBar

目前,当显示登录屏幕时,它仅覆盖屏幕的一半。

                       val coroutineScope = rememberCoroutineScope()
                        val bottomState = rememberModalBottomSheetState(ModalBottomSheetValue.Hidden)
                        ModalBottomSheetLayout(
                            sheetState = bottomState,
                            sheetShape = MaterialTheme.shapes.large,
                            sheetContent = {
                                FullScreen()
                            }
                        ) {

                            Scaffold(
                                topBar = {
                                    TopAppBar(
...
                                content = {

                                    NavHost(navController = navController,
                                        startDestination = "journey") {
                                        composable("journey") { JourneyScreen() }
...
                               bottomBar = {
                                    BottomAppBar(
                                        content = {
                                            BottomNavigation() {

                                                val navBackStackEntry by navController.currentBackStackEntryAsState()
...

Run Code Online (Sandbox Code Playgroud)
@Composable
fun FullScreen() …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack android-jetpack-compose

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

SceneKit中的iOS自定义几何体

我无法尝试使用纹理贴图在iOS模拟器上运行一个简单的四边形.我已经阅读了这里涉及类似事情的所有其他问题而且我被困住了.输出如下所示:

在此输入图像描述

纹理是这样的:

在此输入图像描述

我的代码是这样的:

  // v1 +----+ v0
  //    |    |
  // v2 +----+ v3



  SCNVector3 vertices[] = { SCNVector3Make(  5.0,  5.0, 0.0),
                            SCNVector3Make( -5.0,  5.0, 0.0),
                            SCNVector3Make( -5.0, -5.0, 0.0),
                            SCNVector3Make(  5.0, -5.0, 0.0)
  };

  SCNVector3 normals[] = { SCNVector3Make( 0.0f, 0.0f, 1.0),
                           SCNVector3Make( 0.0f, 0.0f, 1.0),
                           SCNVector3Make( 0.0f, 0.0f, 1.0),
                           SCNVector3Make( 0.0f, 0.0f, 1.0)
  };

  CGPoint textureCoordinates[] = { CGPointMake( 1.0, 1.0),
                                   CGPointMake( 0.0, 1.0),
                                   CGPointMake( 0.0, 0.0),
                                   CGPointMake( 1.0, 0.0)
  };

  NSUInteger vertexCount = 4;


  NSMutableData *indicesData = …
Run Code Online (Sandbox Code Playgroud)

objective-c ios scenekit

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

通过切换布局触发动画UICollectionView单元格调整大小

我试图在各种UICollectionViewFlowLayout子类之间设置动画.每个流布局指定不同的项目大小.一个显示一个包含3个项目的网格,另一个显示包含2个项目的网格,第三个显示只有1个项目(看起来像UITableView).

我正在调用setCollectionViewLayout:animated:来做这件事.单元格大小的动画效果很好.然而,子视图有点混乱.每个单元格都包含一个图像和一个标签(暂时删除了标签).我希望图像随着单元格的大小变化而改变其大小的变化,同样也就是标签.

如果我使用自动布局(目前还不是很好)来布局我的单元格的子视图,那么在动画开始时,图像会调整大小到目标单元格框架.我理解UIView动画是如何工作的,因为他们会立即改变动画属性并且动画在表示层中完成,但我希望自动布局以某种方式工作.

如果我删除自动布局并在initWithFrame中执行以下操作:

[[self imageView] setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin];
Run Code Online (Sandbox Code Playgroud)

那么图像子视图的大小动画很好,但是在循环几个动画后,图像子视图的大小和位置在某些情况下是不正确的.

我已尝试在layoutSubviews中布置子视图,但这会产生与AutoLayout相同的结果.

我在github上看到的所有在UICollectionViewLayouts之间制作动画的演示只有一个彩色背景或填充整个单元格的子视图.有没有人设法让这个工作?

下面是正在发生的图像(红线是UIImageView的边框):

第一个布局

第二版

第三种布局

回到第一个布局,但子视图帧是错误的

animation objective-c uicollectionview

8
推荐指数
2
解决办法
6162
查看次数

Kotlin 序列化中的泛型产生编译时错误

我在编译也是通用的序列化数据类时遇到问题。我对 Android 和 Kotlin 非常陌生,但我是一位经验丰富的 iOS/Swift 开发人员(不要因此而反对我)。

我正在尝试围绕 GraphQL 响应设置一个通用数据类包装器,它可以返回数据字段中的 T 泛型,或错误字段中的错误。

import kotlinx.serialization.Serializable

@Serializable
data class GraphQLResponse<T:Serializable> (
    val errors : List<ErrorResponse>? = null,
    val data : Map<String, T>? = null
) {
    @Serializable
    data class Location(
        val line: Int? = 0,
        val column: Int? = 0,
        val sourceName: String? = null
    )

    @Serializable
    data class ErrorResponse(
        val locations: List<Location>? = null,
        val errorType: String? = null,
        val message: String? = null
    )
}
Run Code Online (Sandbox Code Playgroud)

编译这个我得到以下错误:

java.lang.AssertionError: Couldn't load KotlinClass …
Run Code Online (Sandbox Code Playgroud)

serialization android kotlin

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

有没有人让他的iOS应用程序被Apple拒绝使用设备UDID?

我听说过一些传言称Apple拒绝使用iOS5弃用方法的应用程序[UIDevice uniqueIdentifier].任何人都可以确认他们的应用程序被拒绝了吗?我知道使用这种弃用方法的替代方法,但我们的一位客户要求我们使用我们知道使用此方法的第三方库.

如果是这种情况,我会感到惊讶,因为API方法已被弃用而不是私有的.

iphone deprecated udid ios

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

Watch 上 SwiftUI 按钮中奇怪的内部视图

我刚刚开始使用 Watch 开发和 SwiftUI,并认为我会从一个简单的登录屏幕开始。我做了两个不同风格的两个按钮。奇怪的是,我的按钮有一个奇怪的红色内部视图,我不知道为什么。

struct ContentView : View
{
    var body: some View
    {
        VStack
        {
            Button( "Login")
            {            
            }
            .accentColor( .white)
            .frame( idealHeight:50.0)
            .padding( [.leading, .trailing], 10.0)
            .background( Color.red)
            .cornerRadius( 5.0)

            Button( "Sign Up")
            {
            }
            .accentColor( .red)
            .frame( idealHeight:50.0)
            .padding( [.leading, .trailing], 10.0)
            .background( Color.white)
            .cornerRadius( 5.0)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

手表模拟器截图

有人能告诉我这里发生了什么吗?

另外,如果有人的声誉为 1500,他们可以创建 WatchOS6 标签吗?

更新:这在 iPhone 上比在手表上工作得更好,按钮在两种设备上的工作方式似乎不同。正如@MarkT 指出的那样,您需要从简单的按钮样式开始。问题在于它会阻止您使用自己的按钮样式。

swiftui watchos-6

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