小编str*_*ode的帖子

在Swift中覆盖UIScrollView的委托属性(比如UICollectionView)

UIScrollView有一个委托属性,符合UIScrollViewDelegate

protocol UIScrollViewDelegate : NSObjectProtocol {
    //...
}
class UIScrollView : UIView, NSCoding {
    unowned(unsafe) var delegate: UIScrollViewDelegate?
    //...
}
Run Code Online (Sandbox Code Playgroud)

UICollectionView使用不同的类型UICollectionViewDelegate覆盖此属性

protocol UICollectionViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
   //...
}

class UICollectionView : UIScrollView {
     unowned(unsafe) var delegate: UICollectionViewDelegate?
   //...
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用我的协议覆盖UIScrollViews委托时,如下所示:

protocol MyScrollViewDelegate : UIScrollViewDelegate, NSObjectProtocol {
    //...
}

class MyScrollView: UIScrollView {
    unowned(unsafe) var delegate: MyScrollViewDelegate?

}
Run Code Online (Sandbox Code Playgroud)

编译器给了我两个警告:

  • 属性'委托'的类型为'MyScrollViewDelegate?' 不能覆盖类型为'UIScrollViewDelegate?'的属性
  • 'unowned'不能应用于非类型'MyScrollViewDelegate?'

我如何子类化UIScrollView并覆盖委托属性的类型(即使用自定义委托协议)?

uiscrollview uiscrollviewdelegate ios swift

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

使用CABasicAnimation的UIPercentDrivenInteractiveTransition

当使用手势驱动的UIPercentDrivenInteractiveTransition和CABasicAnimation(或任何其他CAAnimation)时,在finishInteractiveTransition上,动画会跳转到最终位置,而不是像使用UIView块动画时那样平滑地动画.我试图弄清楚如何在使用CAAnimation时finishInteractiveTransition平滑动画.

我现在花了一整天时间.似乎没有任何关于将CAAnimation与自定义VC转换一起使用的提及,每个人都引用基于UIView块的动画.

我创建了一个演示问题的小样本项目.

https://github.com/stringcode86/UIPercentDrivenInteractiveTransitionWithCABasicAnimation

感谢任何花时间看它的人.我很感激.

caanimation ios

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

如何在Swift 1.0中覆盖UIView初始化程序

斯威夫特(1.0)的继承让我疯狂无法相信.我可以相信必须要问一些像这样简单但我无法弄明白的事情.我有我的自定义视图,我希望能够使用init(frame:CGRect)以编程方式创建,并从故事板加载它,在这种情况下应该使用init(coder aDecoder:NSCoder)进行初始化.在这两种情况下,我想调用我的自定义安装方法.像这样:

import UIKit

class CustomView: UIView {

    override convenience init(frame: CGRect) {
        super.init(frame: frame)
        self.myCustomSetup()
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.myCustomSetup()
    }

    func myCustomSetup() {
        self.backgroundColor = UIColor.redColor()
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,从快速文档我明白应该只有一个指定的初始化程序,所有的便利初始化程序调用.在UIView的情况下,这应该是init(编码器aDecoder:NSCoder).然而,我无法创建aDecoder: NSCoder,init(frame: CGRect)我也不能传递nil,因为它不是可选的.我该怎么办 ?我怎样才能覆盖它们?

uiview ios swift

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

Google YouTube API v3 iOS应用密钥,403错误代码

我创建了一个新项目并启用了YouTube Data API v3.在API访问窗格中,我创建了用于浏览器应用程序(带有引用程序)的密钥,这样做很好.我继续创建了iOS应用程序的密钥(带有包标识符).一切看起来都很好我已经检查了捆绑ID 10次,我确信它是正确的.但是,如果我继续使用iOS API密钥从我的iOS应用程序创建NSURLRequest,我会收到错误响应:

error =     {
    code = 403;
    errors =         (
                    {
            domain = usageLimits;
            message = "Access Not Configured";
            reason = accessNotConfigured;
        }
    );
    message = "Access Not Configured";
};
}
Run Code Online (Sandbox Code Playgroud)

使用相同的网址只传递我的密钥浏览器应用程序(与引用者)工作没有任何问题.

NSString *string=[NSString stringWithFormat:@"https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=%@&fields=items(id,snippet(channelId,title,categoryId),statistics(viewCount))&part=snippet,statistics",key];
Run Code Online (Sandbox Code Playgroud)

我真的很困惑这里的问题是什么,我一直试图让它与iOS app关键时刻一起工作.我有什么明显的遗失吗?

google-api youtube-api ios

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

PHFetchOptions mediaSubtype谓词

下面的谓词应该只获取所有的截图,这工作得很好.

options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) != 0", PHAssetMediaSubtypePhotoScreenshot];
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试仅使用follwing谓词排除屏幕截图,则会排除所有图像

options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) = 0", PHAssetMediaSubtypePhotoScreenshot];    
Run Code Online (Sandbox Code Playgroud)

我试图做的就是从资产获取中排除screeshots.

这是已知的错误还是我错过了什么?

photo ios photosframework

5
推荐指数
2
解决办法
1697
查看次数

Shap LSTM(Keras、TensorFlow)ValueError:形状不匹配:对象无法广播到单个形状

我试图从简单的 LSTM 模型中绘制摘要。我ValueError: shape mismatch: objects cannot be broadcast to a single shape打电话时收到shap.summary_plot重现问题的 Colab

import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, BatchNormalization, LSTM
import shap

# Create random training values.
#
# train_x is [
#   [
#        [0.3, 0.54 ... 0.8],
#        [0.4, 0.6 ... 0.55],
#        ...
#   ],
#   [
#        [0.3, 0.54 ... 0.8],
#        [0.4, 0.6 ... 0.55],
#        ... …
Run Code Online (Sandbox Code Playgroud)

python lstm keras tensorflow shap

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

声明在Swift中采用符合"可以相乘"的泛型类型的函数

如何声明在Swift中采用符合"可以相乘"的泛型类型的函数?

例如 :

 func sq <T: "Can be multipied">(x: T) -> T {
    return x*x
 }
Run Code Online (Sandbox Code Playgroud)

所以我可以对Float,Double,CGFloat等进行调整......这有可能吗?

ios swift

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