Code Review - eldaroid/iOSWiki GitHub Wiki
-
Вместо использования
Spacer().frame(height: 15)
лучше использовать VStack с Spacing или .padding(EdgeInsets(top: 10, leading: 5, bottom: 10, trailing: 5)) и задавать любые значения..padding(.bottom, 100)
- отступ снизу в 100 пикселей. Или.padding([.leading, .vertical], 20)
-
Также, вместо использования
.offset(x: 20)
лучше использоватьpadding(.horizontal, 20)
. Потому что offset сдвигает layer (представление, а не frame) и ты можешь кликать на button, но никакого действия не будет происходить, потому что сам frame находится не там, где само представление. -
@State вставлять во все то, что изменяется.
-
Атомарность текста
Было: Text(viewModel.showWarning ? AssessmentStrings.totalAssessmentCommentWarning : "")
Сообщение лучше вынести в отдельный var, что бы поддержать атомарность, например
var warning: String {
viewModel.showWarning ? AssessmentStrings.totalAssessmentCommentWarning : ""
}
- some View
Вместо использования func() -> some View
:
extension View {
public func eraseToAnyView() -> AnyView {
AnyView(self)
}
}
private func printText() -> some View {
return Text("text").eraseToAnyView()
}
Нужно использовать: var: some View
с @ViewBuilder
, который позволит избавиться от erase'ов
@ViewBuilder
private var printText: some View {
Text("text")
}