我有很多卡片需要在 vGrid 中显示。但是,卡片具有动态高度,我想要做的是将列中的卡片与顶部对齐。
这是当前的设置:
let resultGridLayout = [GridItem(.adaptive(minimum: 160), spacing: 10)]
func itemsView() -> some View {
VStack {
filterButton()
.padding(.bottom)
LazyVGrid(columns: resultGridLayout, spacing: Constants.ItemsGrid.spacing) {
ForEach(MockData.resultsData, id: \.id) { result in
ProductCardView(viewModel: .init(container: viewModel.container, menuItem: result))
}
}
.padding(.horizontal, Constants.ItemsGrid.padding)
}
}
Run Code Online (Sandbox Code Playgroud)
目前的布局如下:
因此,每个项目都位于其列空间的中心,而我想要发生的是让它们在每行的顶部对齐。
显然,alignmentvGrid 的修饰符允许我们水平对齐(.center、.leading、.trailing 等),但是我怎样才能阻止它们在中心垂直对齐呢?
我有一个 Google 电子表格,其中 A 列的每一行都有复选框。我编写了一个脚本来在复选框被选中的所有行上执行一个函数,但我想在最后添加一个重置函数,以便在脚本运行后再次取消选中所有选中的框。
我试过使用这样的 for 循环:
var dataRange = sheet.getRange('A3:A');
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == true) {
values[i].setValue(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用,因为我收到错误。
有谁知道如何做到这一点?
我正在尝试通过 SwiftUI 添加一个简单的选择器功能。本质上我正在寻找的结果是这样的:

单击箭头时,用户应该进入一个新视图,在其中选择所需的单位。
我尝试过这样的事情:
var units = ["ltr", "usg", "impg"]
@State private var selectedUnit = 0
var body: some View {
Form {
Section {
VStack {
Picker(selection: $selectedUnit, label: Text("")) {
ForEach(0 ..< units.count) {
Text(self.units[$0])
}
}.frame(width: 42)
}
}
}.navigationBarTitle("Select unit")
}
Run Code Online (Sandbox Code Playgroud)
但是,一旦将其封装在表格中,它就需要标题等,并且占用太多空间。我只是想将单位作为我的基本视图。有什么办法可以做到这一点吗?
我有一个问题,我试图将 SwiftUI 视图插入到现有的 UIKit 视图中。SwiftUI 视图可以动态更改高度,但 UIStackView 不会调整到新的大小。我创建了一个(可怕的)测试项目来强调这一点。
按钮:
class TestButton: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
setupButton()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupButton()
fatalError("init(coder:) has not been implemented")
}
func setupButton() {
setTitleColor(.white, for: .normal)
backgroundColor = .red
titleLabel?.font = .boldSystemFont(ofSize: 25)
layer.cornerRadius = 10
}
}
Run Code Online (Sandbox Code Playgroud)
SwiftUI 视图:
struct TestSwiftUIView: View {
@State var text: [String] = ["This is a line of text"]
var body: some View {
VStack {
ForEach(text, id: \.self) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我正在创建的应用设置nodemailer。尝试运行代码时收到错误消息。
这是我的设置:
const nodemailer = require("nodemailer");
const xoauth2 = require("xoauth2");
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
xoauth2: xoauth2.createXOAuth2Generator({
user: '****@gmail.com',
clientId: '*******************************',
clientSecret: '*****************************',
refreshToken: '*****************************'
})
}
});
var mailOptions = {
from: 'Dave <*******@gmail.com>',
to: '*******@gmail.com',
subject: 'Nodemailer test',
text: 'Hello world'
}
transporter.sendMail(mailOptions, function(err, res) {
if (err) {
console.log(err);
} else {
console.log('Email sent');
}
})Run Code Online (Sandbox Code Playgroud)
很显然,我仔细检查过我的client ID,secret和refresh token。但是我收到以下错误:
Run Code Online (Sandbox Code Playgroud){ Error: Invalid login: 535-5.7.8 Username and Password not …
我正在尝试在编辑时运行一个函数,该函数将在一系列单元格中查找值“c”,然后将其替换为单词“Closed”。
这是我到目前为止所拥有的:
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange('CA12:CA15').getValues();
var closed = 'c'
for(var i=0; i<data.length;i++) {
if(data[i] == closed) {
Logger.log('yes')
Logger.log(data[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我在给定范围内获得该值时,这将成功记录“yes”和值“c”。但现在我该如何替换这个值呢?
我尝试使用 getRange() 存储 data[i] 的范围,但它不允许我这样做。如果我能得到这个范围,那么我知道我可以使用 range.setValue('Closed') 但目前有点卡住。我知道我正在做一些非常简单非常错误的事情,但任何帮助都会很棒。
我有一个 UITextField,我将当前值设置为属性文本,如下所示:
public var currentValue: NSAttributedString {
get {
return inputField.attributedText ?? NSAttributedString()
}
set {
inputField.attributedText = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
这以前只是一个字符串,但我现在需要为部分文本添加格式。
但是,我有一种方法需要传递这些字段,该方法以查看该字段是否为空的条件开头。以前我是这样开始的:
if textField.currentValue.isEmpty {
// Perform logic
}
Run Code Online (Sandbox Code Playgroud)
然而,显然 NSAttributedText 没有 isEmpty 成员。如何对 NSAttributedText 执行相同的检查?
swift ×3
swiftui ×3
alignment ×1
checkbox ×1
express ×1
javascript ×1
lazyvgrid ×1
node.js ×1
nodemailer ×1
picker ×1
string ×1
uikit ×1
uipickerview ×1
uistackview ×1