小编Ara*_*mad的帖子

UINavigationController更改InteractivePopGesture方向

我正在设计一个从右到左的应用程序。通过使用以下代码行,我将所有内容设置为rtl:

UIView.appearance().semanticContentAttribute = .forceRightToLeft
Run Code Online (Sandbox Code Playgroud)

并且对所有期望我的导航控制器具有交互弹出手势的东西来说都是正确的。正确的方向:

在此处输入图片说明

但是当我要使用弹出手势(从左边缘向右边缘滑动)时,从相反的一侧可以看到该视图。
我该如何更改?
我尝试将边缘更改为.right,但是禁用了手势识别器:

let gesture = interactivePopGestureRecognizer as! UIScreenEdgePanGestureRecognizer
    gesture.edges = .right
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller uigesturerecognizer ios swift swift3

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

设置默认缓存策略 apollo swift

有没有办法快速设置Apollo框架中的默认缓存策略?

我知道我可以通过cachePolicy这种方式为每个获取请求设置缓存策略:

Apollo.shared.client.fetch(query: getUser, cachePolicy: CachePolicy.fetchIgnoringCacheData)
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种方法来为client所有请求设置对象中的缓存策略。

ios swift graphql apollo-client

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

swift didSelectAtIndexPath没有被触发

首先,我想描述一下我想要做的事情.我有两个tableViewControllers- 第一个包含账单号码列表,第二个应显示账单的详细信息,具体取决于账单号码的哪个单元格被选中.

在我的第一个tableViewController我使用它从单元格获取bill的号码并将其传递给detailTableViewController:

 override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    let indexPath = tableView.indexPathForSelectedRow
    let currentCell = tableView.cellForRow(at: indexPath!) as! CustomBillTableViewCell

    valueToPass = currentCell.billNumberLabel.text
    print(valueToPass)
    performSegue(withIdentifier: "billsDetailSegue", sender: self)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "billsDetailSegue"){
        let detailController = segue.destination as! BillsDetailTableViewController
        detailController.receivedValue = valueToPass
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,didSelectRowAt在第一个tableView只有prepare函数触发器中的单元格选择并且它将空值传递给下一个视图后,函数根本不会被触发.

uitableview ios swift

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

UIView 的阴影路径颜色不会改变

我有一个UIView,我shadowPath为它设置了一个这样的:

func addShadow() {
    let cornerRadius: CGFloat = self.containerView.frame.height/2
    self.containerView.layer.shadowPath = UIBezierPath(roundedRect: self.containerView.frame, cornerRadius: cornerRadius).cgPath
    self.containerView.layer.shadowRadius = cornerRadius
    self.containerView.layer.shadowOffset = .zero
    self.containerView.layer.shadowOpacity = 0.2
    self.containerView.layer.cornerRadius = cornerRadius
    self.containerView.layer.shadowColor = UIColor(named: "whiteColor")?.cgColor
}
Run Code Online (Sandbox Code Playgroud)

这是whiteColor

在此处输入图片说明

现在我的问题是

当我改变手机的外观时,shadowPath的颜色不会自动改变。我应该怎么做才能使颜色动态?

uiview ios shadowpath swift ios-darkmode

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