小编Jai*_*bin的帖子

iOS 16+ 上缺少 SwiftUI VideoPlayer 全屏关闭按钮

我正在使用 a.fullScreenCover来呈现VideoPlayer视图。在 iOS 15 及更低版本上,这样做会在左上角显示关闭按钮,如下所示:

在此输入图像描述

但在iOS 16上,似乎并没有出现。

在此输入图像描述

代码如下:

.fullScreenCover(
        isPresented: $showVideoSheet,
        onDismiss: {
            selectedVideo = nil
        },
        content: {
            if let video = selectedVideo {
                VideoPlayerView(video: video)
            }
        }
    )
Run Code Online (Sandbox Code Playgroud)

VideoPlayerView在下面:

struct VideoPlayerView: View {

    @StateObject var model: VideoPlayerViewModel
    let video: VideoModel

    init(video: VideoModel) {
        self._model = StateObject(wrappedValue: VideoPlayerViewModel(video: video))
        self.video = video
    }

    var body: some View {
        if let player = model.player {
            VideoPlayer(player: player)
                .ignoresSafeArea()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

视图模型只加载 AVPlayer 等。

有什么建议么?

ios swift swiftui

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

打印前3个小数位而不进行舍入

好吧,我知道有一个问题已经非常相似,但它并没有完全回答我的问题.如果我做错了,请告诉我.

我已经编写了一个程序,可以从用户那里获得华氏温度并将其转换为Celcius.它看起来像这样:

import java.util.Scanner;

public class FahrenheitToCelcius {

    public static void main(String[] args) {

        double fahrenheit;
        Scanner sc = new Scanner(System.in);

        System.out.print("Please enter a temperature in Fahrenheit: ");

        fahrenheit = sc.nextDouble();  
        double celcius = (fahrenheit - 32) * 5 / 9;

        String num = String.format("%.3f", celcius);

        System.out.println(" ");
        System.out.println(fahrenheit + "F" + " is " + num + "C");
    } 
}
Run Code Online (Sandbox Code Playgroud)

当它打印出答案时,我只想打印前3个小数位,但不是圆形.例如,如果输入是100F,我想37.777C打印,而不是 37.778C.

我尝试过使用DecimalFormatString.format(如上所述),但两种方法都打印出来37.778C.有一个更好的方法吗?

谢谢你的回答,如果这是重复,我道歉.

java floating-point rounding

4
推荐指数
2
解决办法
4328
查看次数

如何一次删除SQS队列中的所有消息Java

根据Amazon文档,从SQS队列中删除单个消息的代码是:

    // Delete a message
System.out.println("Deleting a message.\n");
String messageReceiptHandle = messages.get(0).getReceiptHandle();
sqs.deleteMessage(new DeleteMessageRequest()
    .withQueueUrl(myQueueUrl)
    .withReceiptHandle(messageReceiptHandle));
Run Code Online (Sandbox Code Playgroud)

但是,假设我有超过 20 条左右的消息,我真的必须对每条消息都进行处理吗?或者有没有办法批量删除?

感谢您的任何见解。

java amazon-sqs amazon-web-services

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

Java Regular Expression仅匹配1到5个星号

我有一个文本字段,用户可以在其中输入组织的星级评分到数据库中,其中列的最大长度为5.

我已经尝试使用".*\\*{1,5}$"匹配字符串,但是当我输入6个字符时它似乎不起作用.

从数据库抛出的错误消息是:

我想在触发错误消息之前捕获输入.

java regex

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