我想让我的UICollectionView的所有右侧单元格淡出,因为它们滚动类似于Apple的消息应用程序但不影响collectionView中其他单元格的颜色或透明度.有没有办法根据它的滚动位置调整UICollectionViewCell的透明度来实现这种效果?
我正在使用 NSFetchedResultsController 在聊天室应用程序中显示消息。
上下文变量在 appDelegate 中分配,并引用聊天室中使用的上下文。
let context = persistentContainer.viewContext
Run Code Online (Sandbox Code Playgroud)
我在 viewDidLoad 中初始化 NSFRC 如下:
func initializeResultsController() {
let request = NSFetchRequest<Message>(entityName: "Message")
let messageSort = NSSortDescriptor(key: "dateCreated", ascending: true)
request.sortDescriptors = [messageSort]
request.predicate = NSPredicate(format: "chatRoomId == %@", self.chatRoomId)
request.fetchBatchSize = 30
fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: context, sectionNameKeyPath: "messageDateSectionIdentifier", cacheName: self.chatRoomId)
fetchedResultsController.delegate = self
do {
try fetchedResultsController.performFetch()
} catch {
fatalError("Failed to initialize FetchedResultsController: \(error)")
}
}
Run Code Online (Sandbox Code Playgroud)
sectionNameKeyPath ("messageDateSectionIdentifier") 是一个派生属性,因此可以将这些部分划分为日历日。
我有两个问题。首先,batchSize 似乎被忽略,其次缓存似乎对性能没有影响。消息越多,选择聊天室的延迟时间越长。1500 条消息约 1 秒。
当我编辑方案以在控制台中显示 coreData …
我有以下枚举:
enum ExampleEnum {
case one
case two
case three
case four
}
Run Code Online (Sandbox Code Playgroud)
以及以下属性定义:
var exampleProperty: ExampleEnum!
Run Code Online (Sandbox Code Playgroud)
在Swift 4.2之前,我使用以下switch语句:
switch self.exampleProperty {
case .one:
print("case one")
case .two:
print("case two")
case .three:
print("case three")
case .four:
print("case four")
default:
break
}
Run Code Online (Sandbox Code Playgroud)
自从切换到Swift 4.2之后,这个switch语句给了我错误:
Enum case 'one' not found in type 'ExampleEnum?'
Run Code Online (Sandbox Code Playgroud)
我觉得这很奇怪,因为我已经用感叹号清楚地定义了类型,以隐式解开可选内容。但是,似乎没有这样做。为了使错误消失,我需要执行以下切换:
switch self.exampleProperty! {
case .one:
print("case one")
case .two:
print("case two")
case .three:
print("case three")
case .four:
print("case four")
}
Run Code Online (Sandbox Code Playgroud)
我在上面所做的是再次解包了exampleProperty变量,即使定义是隐式解包的,也从开关中删除了默认值。
只是想知道为什么在4.2快速更改?是switch语句中的更改,还是为什么再次需要这种解包。看来多余吗?
我想为我的网站录制我的应用程序的视频。我希望它看起来很专业,带有触摸指示器来显示触摸,但没有光标,也没有辅助触摸指示器。
我知道有使用终端或quicktime甚至设备上的屏幕记录的解决方案。但我还没有找到任何特定的解决方案,可以让我显示屏幕触摸而不是光标。
理想情况下,最好的办法是将其记录在模拟器上,并让光标由触摸指示器表示,该指示器在按下时会突出显示。
任何专业的解决方案也将是好的。我可以访问所有 adobe 应用程序。
我使用 MKMapSnapshotter 创建了地图图像。不幸的是,快照器不允许您添加注释,因此我想将注释直接添加到视图上。
我知道对于引脚,您可以执行以下操作来获取引脚的 UIImage:
let pinView = MKPinAnnotationView(annotation: nil, reuseIdentifier: nil)
let pinImage = pinView.image
Run Code Online (Sandbox Code Playgroud)
这很好用。不过我想要标记的图像。我已尝试以下操作,但不幸的是没有出现任何内容。
let markerView = MKMarkerAnnotationView(annotation: nil, reuseIdentifier: nil)
let markerImage = markerView.image
Run Code Online (Sandbox Code Playgroud)
我已将图像更改为 glyphImage ,没有区别。有没有办法获取标记图像?
切换到xcode 8 beta后,我的推送通知已停止工作.
我的发布代码签名标识设置为分发.我正在注册设备,接收令牌并成功上传到我的服务器没有任何问题.但推送消息的状态失败.
只是想知道我是否需要进行任何更改,或者它是否不适用于测试版的xcode.
我以前能够使用以下Swift 3代码从CLPlacemark获取完整地址字符串:
let addressList = placemark.addressDictionary?["FormattedAddressLines"] as? [String]
let address = addressList!.joined(separator: "\n")
Run Code Online (Sandbox Code Playgroud)
addressDictionary现在已在swift 4中弃用.
我可以提取每个CLPlacemark地址变量字符串(name,country postalCode等),但我想知道是否有更简单的方法.
我知道有一个postalAddress var,其类型为CNPostalAddress,但不确定如何将其转换为String.
我在集群中使用 aurora rds (mysql) 并且无法插入表情符号。我试图插入的列具有以下排序规则:
utf8mb4 - utf8mb4_unicode_ci
我曾尝试使用客户端插入,也尝试从 mysql 工作台写入查询,但在这两种情况下,我都只看到 ???? 在该领域。
我更新了表默认字符集:utf8mb4 和默认排序规则:utf8mb4_unicode_ci
但仍然得到???而不是表情符号
编辑1:
我试图编辑集群的参数组并将所有字符集值设置为 utf8mb4 并将所有排序规则值设置为 utf8mb4_unicode_ci 但仍然无法正常工作。
在 Xcode 11 中堆叠编辑器的选项已移至菜单中的 Editor-Layout。然而,三个选项自动/左侧编辑器/顶部编辑器是灰色的。如何解锁以在垂直堆栈中排列编辑器?
我在 SwiftUI 中使用 .fileImporter 修饰符在我的应用程序中导入 pdf 文件。我有几个问题。首先,数据加载速度很慢,并且通常无法加载并给出消息“内部错误无法与帮助程序应用程序通信”。
但主要问题是,如果向下滑动关闭模态视图,则无法再次呈现。大概是因为绑定 $showFileImporter 未重置。如果按下取消按钮来关闭它就可以正常工作。我不知道是否有办法强制它全屏来解决这个问题。
这是我的代码:
.fileImporter(isPresented: $showFileImporter, allowedContentTypes: [.pdf]) { result in
switch result {
case .success(let url):
url.startAccessingSecurityScopedResource()
if let pDFDocument = PDFDocument(url: url) {
if let data = pDFDocument.dataRepresentation() {
// handle data
}
}
case .failure(let error):
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)