我正在尝试构建我自己的自定义标签栏视图,而在构建我的自定义按钮时,我无法更改 Image() 的颜色。
struct TabBarButton: View {
let title: String
let icon: String
var body: some View {
return GeometryReader{ geometry in
VStack {
Image(self.icon)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: geometry.size.width/2, height: CGFloat(25))
.foregroundColor(.white)
Text(self.title)
.font(.system(size: 8))
.foregroundColor(Color.white)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过 foregroundColor(Color.white)、accentColor(Color.white) 和一些不同的颜色乘数。除了默认的黑色之外,是否有其他颜色没有其他原因?简单的修复只是获得白色图标,但希望我现在可以解决这个问题。
尝试将 SwiftUI 集成到现有的大型项目中。我已按照步骤将其集成到我的项目中,但是当我尝试预览我的新 SwiftUI 视图文件时,出现错误..
Cannot preview in this file - current target needs adjusted build settings
Run Code Online (Sandbox Code Playgroud)
最后有一个小 (i) 符号表示..
"project.app" needs -Onone Swift optimization level to use previews
Run Code Online (Sandbox Code Playgroud)
尽管 SwiftUI 文件不是根视图控制器,但我已经添加了我的场景委托,所以我特别注意将 willConnectTo 方法留空。
默认在我的 Project < Build Settings < Swift Compiler - Code Generation < Optimization Level 下.. Debug 设置为 No Optimization[-Onone],release 为 Optimize for Speed[-O]...这和我的做法设置是一样的SwiftUI 项目。
我已经尝试了许多解决方案,但还没有奏效。
编辑我的 Info.plist - 虽然这并没有解决它,但似乎这是一件很重要的事情。
我遵循的集成的终极解释
我正在尝试在 SwiftUI 中创建一个带有两组十个按钮的 UI(想象一场杯乒乓球比赛)。每当我尝试构建或预览代码时,我都会收到以下错误消息:“编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式'。我想知道如何解决这个问题。
我知道它很长。有什么办法可以修复它以便代码可以工作。
// ContentView.swift
// Text Pong
//
// Created by Thomas Braun on 8/21/19.
// Copyright © 2019 Thomas Braun. All rights reserved.
//
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(spacing: 250.0) {//Contains both the triangles
VStack {//User Triangle
HStack(spacing: 15.0) {
Button(action: {}) {
Text("7")
.font(.largeTitle)
}
Button(action: {}) {
Text("8")
.font(.largeTitle)
}
Button(action: {}) {
Text("9")
.font(.largeTitle)
}
Button(action: {}) {
Text("10")
.font(.largeTitle)
}
}
HStack(spacing: 15.0) {
Button(action: …Run Code Online (Sandbox Code Playgroud) 无法更改我的工具栏上的文本。我已经做了搜索,但是没有结果。
我尝试了很多事情,但也许会弹出。这是我为活动尝试的最后一件事的代码。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarCustom);
TextView textView = (TextView) toolbar.findViewById(R.id.toolbarTextView);
textView.setText("String");
Run Code Online (Sandbox Code Playgroud)
这是我的XML代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_item_action"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.carson.tryeverything.ItemActionActivity"
android:orientation="vertical"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbarCustom"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="?attr/colorPrimary"
>
<TextView
android:id="@+id/toolbarTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="Line one"
android:textAppearance="@android:style/TextAppearance.WindowTitle"
android:visibility="visible" />
</android.support.v7.widget.Toolbar>
<FrameLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="6dp"
android:layout_marginTop="0dp"
/>
</FrameLayout>
</LinearLayout>
android:textAppearance="@android:style/TextAppearance.WindowTitle"
android:visibility="visible" />
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
最后是我的清单文件。可能需要一点清洁
<application
android:name="android.support.multidex.MultiDexApplication"
android:allowBackup="true"
android:icon="@mipmap/icon2"
android:label="@string/app_name"
android:supportsRtl="true" …Run Code Online (Sandbox Code Playgroud) 显示最近的消息:-1:找不到与“PD_Prod_18_March”匹配的团队“RGNG4KKEAN”的配置文件:Xcode 找不到任何与“RGNG4KKEAN/PD_Prod_18_March”匹配的配置文件。安装配置文件(通过将其拖放到 Xcode 的停靠项上)或在目标编辑器的常规选项卡中选择不同的配置文件。(在目标“PocketDeals”中)
我从开发商那里为客户接手了一个项目。由于上述问题,我无法发布 iOS 应用程序。我发现很难找到解决方案,因为大多数人都有不同的情况(第一次构建应用程序等)。
在登录构建设置选项卡时,我已更改为正确的信息。
我已在
首选项窗口的帐户下附加了我的开发者 Apple ID
另外,我尝试在进行这些
更改后重新启动 Xcode。
我可以构建到模拟器,但不能构建到我自己的设备。
在终端尝试过这个
rm ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision
现在尝试这篇听起来相似的文章
通过点击链接,我可以在 Xcode 中手动编辑 RGNG4KKEAN。我现在已经解决了这个问题..
显示最近消息:-1:PocketDeals 的配置设置存在冲突。PocketDeals 是自动签名的,但配置文件 PD_Prod_18_March 是手动指定的。在构建设置编辑器中将配置文件值设置为“自动”,或在项目编辑器中切换到手动签名。(在目标“PocketDeals”中)
最终编辑: 我终于自己解决了这个问题,我最终得到了自动签名的工作。最重要的是拿出一个不同的项目并比较信息,不确定哪件事最终允许我的应用程序在我的真实手机上构建。我删除了旧配置文件的所有痕迹,更正了包名称,将调试设置为正确的设置等。
我正在慢慢地将我的项目转换为 SwiftUI。我想将故事板中的 UITabBarController 连接到 SwiftUI 视图。
我的理解是最好的方法是使用 UIHostingController。我在我的故事板中添加了一个,将它连接到 TabBar,并将我的自定义 HostingViewController 作为自定义类添加到该控制器。(这确实显示在“更多”选项卡下,如果这很重要的话)
我假设我在这里遗漏了一些代码,但我发现大部分代码片段都缺少正确的示例。 主机控制器
import Foundation
import UIKit
import SwiftUI
class HseEventHostingVC: UIHostingController<HseView>{
}
Run Code Online (Sandbox Code Playgroud)
我已将其设置为故事板中 UIHostingController 的类,该类连接到我的标签栏。当我尝试运行时,出现此错误。
致命错误:init(coder:) 必须在子类中实现并调用 super.init(coder:, rootView:): file
我在这里遵循了这个简单的指南,这是为了推送 SwiftUI 视图,但认为它在理论上并没有太大不同。
这是我的 SwiftUI 视图
import SwiftUI
struct HseView: View {
var body: some View {
let first = HSECell(name: "Newest Observation", duedate: "2019/10/10", status: "Open", reportedBy: "Carson Skjerdal", reportedDate: "2020/01/01", hseid: "OBS12")
let hseItems = [first]
return List(hseItems) {item in
HseItemRow(hsecell: item)
}
}
} …Run Code Online (Sandbox Code Playgroud) 当用户选择选项卡时,我试图重置我的 ScrollView。问题是所有教程都是针对嵌套在 ScrollView 内的按钮。我的 ScrollView 与我需要点击以重置 ScrollView 的位置完全分开。
但我收到错误“无法在范围内找到代理”。
@EnvironmentObject var global: GlobalObserver
return ScrollView {
ScrollViewReader { (proxy: ScrollViewProxy) in
EmptyView()
}.onChange(of: self.global.resetScroll){ resetScroll in
if (resetScroll){
proxy.scrollTo(0)
self.global.resetScroll = false
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人知道在视图之外设置 ScrollView 位置的更简单的实现,我会很高兴听到它。