小编Mar*_*aka的帖子

检测表已在iOS 13上关闭

在iOS 13之前,提供了用于覆盖整个屏幕的视图控制器。并且,在关闭后,将viewDidAppear执行父视图控制器功能。

现在,iOS 13默认将表单显示为视图控制器,这意味着卡将部分覆盖基础视图控制器,这意味着viewDidAppear不会被调用,因为父视图控制器从未真正消失过。

有没有一种方法可以检测到所显示的视图控制器工作表已被解雇?我可以在父视图控制器中重写某些其他功能,而不是使用某种委托

uiviewcontroller uikit ios swift ios13

41
推荐指数
7
解决办法
8950
查看次数

重用 UITableViewCell 时无法重置 UILabel 属性文本

问题

我正在使用 aUITableView来显示信用卡的交易列表。如果交易是退款,我会在标签中添加删除线样式:

我的 UITableViewCells 示例

当重复使用该特定单元格时会出现问题。即使在重置标签的textandattributedText属性后,删除线装饰仍然存在。

下面我添加了代码的相关部分:

表格视图

class TimelineViewController: UIViewController {

    private lazy var tableView: UITableView = {
        let tableView = UITableView.init(frame: view.frame, style: .plain)
        tableView.translatesAutoresizingMaskIntoConstraints = false
        tableView.register(TimelineTableViewCell.self, forCellReuseIdentifier: TimelineTableViewCell.reuseIdentifier)
        tableView.dataSource = self
        tableView.delegate = self
        return tableView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        addTableViewOnView()
        getTimeline()
    }

}

extension TimelineViewController: UITableViewDataSource {

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: TimelineTableViewCell.reuseIdentifier,
                                                       for: indexPath) as? TimelineTableViewCell else { …
Run Code Online (Sandbox Code Playgroud)

uitableview uikit uilabel ios swift

13
推荐指数
2
解决办法
2126
查看次数

如何在 Siri 快捷方式中随机播放列表

我想使用默认的随机源随机排列列表。我发现的“随机播放”的唯一参考是“播放音乐”操作中的一个选项。

换句话说,如何创建一个操作,该操作接收一个列表作为输入,并返回另一个具有相同元素但以随机顺序排列的列表?

sirishortcuts

6
推荐指数
1
解决办法
1513
查看次数

SwiftUI:两个并排列表和一个导航视图出现意外行为

我有一个屏幕,两个List并排,在一个NavigationView. 布局渲染正确,我可以独立滚动两个列表。问题是,当我滚动第一个列表时,它位于导航栏后面,而没有触发对其应用背景颜色的效果。下面的 gif 展示了正在发生的事情:

在此输入图像描述

这是我用于此视图的代码:

struct ContentView: View {

    var body: some View {
        NavigationView {
            HStack(spacing: 0) {
                List {
                    Section(header: Text("Header left")) {
                        ForEach(0..<600) { integer in
                            Text("\(integer)")
                        }
                    }
                }
                .listStyle(InsetGroupedListStyle())
                .frame(minWidth: 0, maxWidth: .infinity)

                List {
                    Section(header: Text("Header right")) {
                        ForEach(0..<400) { integer in
                            Text("\(integer)")
                        }
                    }
                }
                .listStyle(InsetGroupedListStyle())
                .frame(minWidth: 0, maxWidth: .infinity)
            }
            .navigationTitle("Example")
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }

}
Run Code Online (Sandbox Code Playgroud)

这会是 SwiftUI 的错误吗?如果没有,如何使第一个列表在滚动时与导航栏正确交互?

ios swift swiftui

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

在 AppDelegate 上处理persistentContainer 实例的正确方法

当我们在选中 Core Data 选项的情况下在 Xcode 中创建一个新项目时,它会在 AppDelegate.swift 上生成一个定义 Core Data 堆栈的新项目:

class AppDelegate: UIResponder, UIApplicationDelegate {

    // ...

    // MARK: - Core Data stack

    lazy var persistentContainer: NSPersistentContainer = {
        let container = NSPersistentContainer(name: "CoreDataTest")
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
            if let error = error as NSError? {
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
        return container
    }()

    // MARK: - Core Data Saving support

    func saveContext () {
        let context = persistentContainer.viewContext
        if context.hasChanges {
            do {
                try context.save()
            } …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift

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

Swift:navigationController返回nil

在由UITabBarController实例化的UIViewController上,当我运行以下代码时,

let destination = self.storyboard?.instantiateViewControllerWithIdentifier("test")
self.navigationController!.pushViewController(destination!, animated: true)
Run Code Online (Sandbox Code Playgroud)

navigationController返回零.如何获取navigationController推送视图控制器的实例?

uitabbarcontroller uiviewcontroller ios swift

3
推荐指数
1
解决办法
1万
查看次数

执行查询时 MyBatis NumberFormatException

使用 MyBatis,我有一个 SQL 作为参数接收字符串 "fr.id_lotacao in (3007, 3008, 3009, 3010)"

查询语句:

...
<if test="idLotacao != -1">
    and ${idLotacao}
</if>
...
Run Code Online (Sandbox Code Playgroud)

我以这种方式从 Java 调用:

getDB1SqlSessionTemplate().selectList("sql", MyBatisUtil.createMap("idLotacao", getIdsLotacao(lotacao)));
Run Code Online (Sandbox Code Playgroud)

其中getIdsLotacao(lotacao)返回作为参数传递的字符串。

但是,当执行时,MyBatis 抛出错误:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: java.lang.NumberFormatException: For input string: "fr.id_lotacao in (3007, 3008, 3009, 3010)"
Run Code Online (Sandbox Code Playgroud)

当用 $ 接收参数时,MyBatis 不是应该${idLotacao}用 String替换"fr.id_lotacao in (3007, 3008, 3009, 3010)"吗?

我究竟做错了什么?是什么导致了这个错误?

java mybatis

2
推荐指数
1
解决办法
5487
查看次数

如何使用组合布局在 UICollectionView 内均匀间隔固定大小的单元格?

我有一个使用组合布局创建的集合视图。每个项目都有固定的宽度和高度,并且该部分占据表格的整个宽度(表格本身占据屏幕的整个宽度)。我正在尝试创建一种算法来计算内容和部分插入,使每个项目之间的间距相等,并且屏幕边框之间的间距也相等。换句话说,所有东西之间的空间应该是相同的。

以下是计算内容和章节插入的方法:

// width is 414
private func getContentInsets(width: CGFloat) -> NSDirectionalEdgeInsets {
    let totalItemsInRow = Int(width / 120) // 3
    let totalCellWidth = 120 * totalItemsInRow // 360
    let remainingSpace = width - CGFloat(totalCellWidth) // 54
    let marginPerItem = remainingSpace / CGFloat(totalItemsInRow) // 18
    return NSDirectionalEdgeInsets(top: 8, leading: marginPerItem / 2, bottom: 8, trailing: marginPerItem / 2)
}

// width is 414    
private func getSectionContentInsets(width: CGFloat) -> NSDirectionalEdgeInsets {
    let totalItemsInRow = CGFloat(Int(width / 120)) // 3
    return NSDirectionalEdgeInsets(top: …
Run Code Online (Sandbox Code Playgroud)

math uikit uicollectionview swift uicollectionviewcompositionallayout

0
推荐指数
1
解决办法
1538
查看次数

如何在 Swift 中检查 Decimal 是正数还是负数?

我正在尝试检查十进制数是否为负数。尝试:

if value._isNegative {
...
}
Run Code Online (Sandbox Code Playgroud)

但它给出了错误 'UInt32' is not convertible to 'Bool'

swift

-1
推荐指数
2
解决办法
3770
查看次数