小编Gri*_*ear的帖子

Swift 4协议组成一致性

[ 首先,如果有人对问题有更好的名称,提案就会被广泛接受.到目前为止,我没有找到更好的名称.]

所以,这就是问题所在.

假设我有一个协议ProtocolA,协议ProtocolB和协议ProtocolX定义如下:

protocol ProtocolA {
  func doSomethingA()
}

protocol ProtocolB {
   func doSomethingB()
}

protocol ProtocolX {
   var handler: ProtocolA { get }
}
Run Code Online (Sandbox Code Playgroud)

然后我在ProtocolX的一个类中有一个正确的实现,如下所示:

class Donald: ProtocolX {
   ...
   var handler: ProtocolA { ... }
   ...
}
Run Code Online (Sandbox Code Playgroud)

然后一切正常,协议要求得到正确履行.

如果我这样实现:

class Donald: ProtocolX {
   ...
   var handler: ProtocolA & ProtocolB
   ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个编译时问题,报告我的类Donald不符合ProtocolX(根据规范,要求var handler必须符合ProtocolA).

从理论上讲,var handlerIS符合ProtocolA(但它也符合ProtocolB …

swift swift4

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

自定义视图嵌入导航栏

我正在尝试创建一个与日历应用程序中使用的Apple相似(并具有相同行为)的导航栏.特别是(见下图):


启动导航栏

启动导航栏


结束导航栏(推后)

结束导航栏


我试图继承UINavigationBar并覆盖该sizeThatFits(rect:CGrect)方法.这将增加条形高度但是自定义视图的结果不正确,以及"弹出/推动"和按钮对齐之间的动画(按钮保持对齐而不是向上).这个解决方案似乎真是一团糟.

您现在是一个更好的解决方案,在导航栏中嵌入自定义视图(具体如何在图像中表示),并使此视图也成为导航栏动画的一部分?

编辑

我也发现这些可能有用的旧问题: 更改iPhone导航栏的高度, 更改UINavigationBar高度,

另外,可调整大小的导航栏,你可以找到在这里 GitHub上是有用的

欢迎更好的解决方案

cocoa-touch objective-c ios

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

CallKit 和 Apple Watch 互操作性

随着 iOS 10 和 WatchOS 3 的发布而来的消息还有CallKit

我在我的设备(iPhone 6s、iOS 10 beta 5;带有 WatchOS 3 beta 5的 AppleWatch)中尝试了 Apple 提供的演示应用程序(并在 WWDC 中展示),名为“ SpeakerBox ”,但我有一个严重的怀疑:

CallKit 提供的功能是否仅在 iOS 上可用,或者由于它使用操作系统调用系统,我们也将免费获得 Apple Watch 呼叫处理?

我使用演示应用程序进行了测试,但在这种情况下,我只在电话上响起呼叫,这对我来说很奇怪,因为 CallKit 应该是一个简化与操作系统呼叫系统集成的框架。

有谁知道如何以及是否可以在 WatchOS 中进行标准呼叫处理(当然> 3)?

ios apple-watch watchkit callkit

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

圈子进度查看活动应用程序

我正在尝试创建一个动画的径向图表,看起来像Apple创建的活动应用程序.我提供了一个图像来显示我想要的结果:

例

你知道如何获得这个结果吗?如果您有任何想法,请关注以下几点?

  1. 在每个圆圈内创建渐变
  2. 在圆形头部创建阴影

非常感谢你提前.

ios

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

标签 统计

ios ×3

apple-watch ×1

callkit ×1

cocoa-touch ×1

objective-c ×1

swift ×1

swift4 ×1

watchkit ×1