I have just installed Xcode11 and when i try to create new fresh project with SwiftUI check mark selected it returns error.
Not able to build and run successfully.
File 'ContentView.swift' is part of module 'SwiftUI'; ignoring import
ContentView.swift
Use of undeclared type 'View'
SceneDelegate.swift
Use of unresolved identifier 'UIHostingController'
I have tried removing all derived data and also set command-line tools to 11
如何在 SwiftUI 中使用 AttributedString。没有可用于在文本中使用 AttributedString 的 API
我将水平UICollectionView
固定到的所有边缘UITableViewCell
。集合视图中的项目是动态调整大小的,我想使表视图的高度等于最高的集合视图单元格的高度。
视图的结构如下:
UITableView
UITableViewCell
UICollectionView
UICollectionViewCell
UICollectionViewCell
UICollectionViewCell
class TableViewCell: UITableViewCell {
private lazy var collectionView: UICollectionView = {
let collectionView = UICollectionView(frame: self.frame, collectionViewLayout: layout)
return collectionView
}()
var layout: UICollectionViewFlowLayout = {
let layout = UICollectionViewFlowLayout()
layout.estimatedItemSize = CGSize(width: 350, height: 20)
layout.scrollDirection = .horizontal
return layout
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
let nib = UINib(nibName: String(describing: CollectionViewCell.self), bundle: nil)
collectionView.register(nib, forCellWithReuseIdentifier: CollectionViewCellModel.identifier)
addSubview(collectionView)
// (using SnapKit)
collectionView.snp.makeConstraints …
Run Code Online (Sandbox Code Playgroud) 在Xcode 11之前,我使用了一个脚本来读取当前应用程序版本(适用于AppStore)并帮助我更改LaunchScreen,因为我们不能为此使用swift。
sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
sed -i .bak -e "/userLabel=\"APP_VERSION_LABEL\"/s/text=\"[^\"]*\"/text=\"v$versionNumber\"/" "$PROJECT_DIR/$PROJECT_NAME/App/Base.lproj/LaunchScreen.storyboard"
Run Code Online (Sandbox Code Playgroud)
但是在Xcode 11中,项目的构建设置中有一个新的部分称为Versioning
并CFBundleShortVersionString
自动更改为$(MARKETING_VERSION)
。Xcode会自动处理该问题,我不想手动将其更改为静态数字,而是让Xcode进行处理。
因此,问题是如何MARKETING_VERSION
使用运行脚本访问此新文件并将其设置为launchScreen标签?
我正在尝试将应用上传到应用商店。但是得到如下错误:
App Store连接操作错误ERROR ITMS-90534:“无效的工具链。您的应用是使用不受支持的Xcode或SDK版本构建的。如果您打算将此构建提交到App Store,请确保您使用的是GM版本的Xcode 10.1。以及适用于iOS 12.1和watchOS 5.1的SDK,Xcode 7.1和适用于tvOS 9的SDK或适用于macOS 10.9或更高版本的Xcode 6和SDK。如果您使用的是Xcode Beta版来测试您的应用,请确保使用最新的受支持版本。有关受支持的Beta版本的更多信息,请查看App Store Connect新增功能页面(https://developer.apple.com/app-store-connect/whats-new/)。”
App Store连接操作警告警告ITMS-90703:“ Xcode Build已弃用。由于已解决的应用程序存档问题,我们已于2019年11月5日弃用Xcode 11.2。下载Xcode 11.2.1或更高版本,重建您的应用程序并重新提交。”
警告ITMS-90703指出已弃用Xcode 11.2。下载11.2.1或更高版本,但是Apple尚未在Xcode 11.2之后发布更高版本。
请告知如何解决此错误。
我需要用不同的动作响应单击和双击,但在 SwiftUI 中,双击手势被解释为两次单击。
在 swift 中,您可以使用失败手势,但不知道如何在 SwiftUI 中执行此操作。
例子:
.onTapGesture(count: 1) {
print("Single Tap!")
}
.onTapGesture(count: 2) {
print("Double Tap!")
}
Run Code Online (Sandbox Code Playgroud)
TIA。
如何检测iPhone 14 pro动感岛的大小和变化?
由于安全区域在圆形屏幕和顶部或底部插图内提供了一个安全矩形,但与矩形内的对象无关。
我有以下设置.
+- XXXCustomControl : UIControl -------+
| A |
| +- ContentView -------------------+|
| | ||
| | B ||
| | ||
| +---------------------------------+|
+--------------------------------------+
Run Code Online (Sandbox Code Playgroud)
一个XXXCustomControl,它是UIControl的子类.它包含一个名为contentView的子视图,其类型为UIView,其大小小于Control的区域.该视图具有.userInteractionEnabled = YES;
我需要将该属性设置为YES,因为水平滚动视图会偶尔放入其中,并且它们需要可滚动.如果超级视图(在我们的案例中,内容视图不允许用户交互,则会继承子视图.)但同时,当XXXCustomControl在其内容视图中不包含滚动视图时,不仅需要在区域A中而且还包含滚动视图.在B区
所以我在这里有一个"利益冲突"因为我要么
1)将内容视图设置为userInteractionEnabled = NO,然后我可以在A和B中的内容视图区域中点击空控件,但是我将放在那里的滚动视图将不可滚动.
2)将内容视图设置为userInteractionEnabled = YES但是,如果Control为空,我只能点击区域A来触发触摸事件.
我想出的一个想法是我默认将属性设置为NO,当我填充contentView时,我将其设置为yes.当我清除contentView时,我将属性设置为no.基本上我希望它一直设置为yes,当它为空时,强制contentView将touchUpInside事件传递给它的superview.
这可能吗?
如何在SwiftUI中以横向模式预览设备?
我只有一个简单的预览,像这样:
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud) 我可以做一个静态列表
List {
View1()
View2()
}
Run Code Online (Sandbox Code Playgroud)
但是,如何从数组中动态生成元素列表?我尝试了以下操作,但出现错误:包含控制流语句的闭包不能与函数生成器“ ViewBuilder”一起使用
let elements: [Any] = [View1.self, View2.self]
List {
ForEach(0..<elements.count) { index in
if let _ = elements[index] as? View1 {
View1()
} else {
View2()
}
}
}
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?我要完成的工作是一个列表,其中包含不是静态输入的动态元素集。
swift ×7
ios ×6
swiftui ×5
xcode ×5
xcode11 ×4
app-store ×1
cocoa-touch ×1
import ×1
objective-c ×1
sh ×1
uikit ×1
uitableview ×1
xcode11.2 ×1