小编ali*_*ego的帖子

当collectionView滚动时,如何使iOS collectionView的特定单元格淡出?

我想让我的UICollectionView的所有右侧单元格淡出,因为它们滚动类似于Apple的消息应用程序但不影响collectionView中其他单元格的颜色或透明度.有没有办法根据它的滚动位置调整UICollectionViewCell的透明度来实现这种效果?

transparency fade collectionview ios swift

5
推荐指数
3
解决办法
2642
查看次数

NSFetchedResultsController 中的 fetchBatchSize 和缓存被忽略

我正在使用 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 …

xcode core-data nsfetchedresultscontroller ios swift

5
推荐指数
1
解决办法
503
查看次数

迅速4.2枚举大小写''找不到类型'?' switch语句中的要求以冗余方式解开隐式解开的可选

我有以下枚举:

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语句中的更改,还是为什么再次需要这种解包。看来多余吗?

switch-statement ios swift xcode10 swift4.2

5
推荐指数
1
解决办法
732
查看次数

在带有触摸指示器且无光标的设备或模拟器上录制 iOS 应用程序的视频

我想为我的网站录制我的应用程序的视频。我希望它看起来很专业,带有触摸指示器来显示触摸,但没有光标,也没有辅助触摸指示器。

我知道有使用终端或quicktime甚至设备上的屏幕记录的解决方案。但我还没有找到任何特定的解决方案,可以让我显示屏幕触摸而不是光标。

理想情况下,最好的办法是将其记录在模拟器上,并让光标由触摸指示器表示,该指示器在按下时会突出显示。

任何专业的解决方案也将是好的。我可以访问所有 adobe 应用程序。

xcode video-capture ios ios-simulator

5
推荐指数
1
解决办法
955
查看次数

如何获取 MKMarkerAnnotationView 图像?

我使用 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 mkannotationview ios swift

5
推荐指数
0
解决办法
136
查看次数

xcode 8 beta ios 10推送通知停止工作

切换到xcode 8 beta后,我的推送通知已停止工作.

我的发布代码签名标识设置为分发.我正在注册设备,接收令牌并成功上传到我的服务器没有任何问题.但推送消息的状态失败.

只是想知道我是否需要进行任何更改,或者它是否不适用于测试版的xcode.

code-signing push-notification swift3 ios10 xcode8

4
推荐指数
2
解决办法
6743
查看次数

使用Swift 4/Xcode 9从CLPLacemark获取完整的地址字符串

我以前能够使用以下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.

ios clplacemark swift4 xcode9

4
推荐指数
1
解决办法
1940
查看次数

集群中的 aws aurora rds (mysql) 无法插入表情符号

我在集群中使用 aurora rds (mysql) 并且无法插入表情符号。我试图插入的列具有以下排序规则:

utf8mb4 - utf8mb4_unicode_ci

我曾尝试使用客户端插入,也尝试从 mysql 工作台写入查询,但在这两种情况下,我都只看到 ???? 在该领域。

我更新了表默认字符集:utf8mb4 和默认排序规则:utf8mb4_unicode_ci

但仍然得到???而不是表情符号

编辑1:

我试图编辑集群的参数组并将所有字符集值设置为 utf8mb4 并将所有排序规则值设置为 utf8mb4_unicode_ci 但仍然无法正常工作。

mysql amazon-web-services emoji amazon-aurora

4
推荐指数
1
解决办法
3463
查看次数

如何在 Xcode 11 中垂直堆叠编辑器?

在 Xcode 11 中堆叠编辑器的选项已移至菜单中的 Editor-Layout。然而,三个选项自动/左侧编辑器/顶部编辑器是灰色的。如何解锁以在垂直堆栈中排列编辑器?

layout xcode11

4
推荐指数
1
解决办法
305
查看次数

SwiftUI .fileImporter 向下滑动关闭后无法再次显示

我在 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)

xcode ios swiftui swiftui-fileimporter

4
推荐指数
1
解决办法
1306
查看次数