我目前有一组自定义对象
[GenrePosters]
其定义如下:
public struct GenrePosters: Decodable, Equatable{
public let poster : String
public init? (json: JSON) {
guard let poster: String = "poster_path" <~~ json
else {return nil}
self.poster = poster
}
public static func ==(lhs: GenrePosters, rhs: GenrePosters) -> Bool {
return lhs.poster == rhs.poster
}
Run Code Online (Sandbox Code Playgroud)
打印到控制台时,它看起来像这样:
[MyMovieGuide.GenrePosters(海报:"/ e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg"),MyMovieGuide.GenrePosters(海报:"/ jjBgi2r5cRt36xF6iNUEhzscEcb.jpg"),MyMovieGuide.GenrePosters(海报:"/ tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg")]
我正在尝试将GenrePosters数组转换为只包含这样的海报值的字符串数组:
["/ e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg""/ jjBgi2r5cRt36xF6iNUEhzscEcb.jpg""/ tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg"]
任何帮助将不胜感激!
我目前正在制作一个自定义按钮功能,但希望能够设置背景颜色的 Alpha。这是我到目前为止所拥有的:
func roundButtonCornersAndAddBorderColor(button: UIButton) {
button.backgroundColor = .clear
button.layer.cornerRadius = 5
button.layer.borderWidth = 1
button.layer.borderColor = UIColor.white.cgColor
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为swift 3更新函数的一部分:
let newLabelOffset = CGFloat(direction.rawValue) * originalFrame.size.height/2
newLabel.transform = CGAffineTransformConCat(
CGAffineTransformMakeScale(1,0)
CGAffineTransformMakeTranslation(0,newLabelOffset)
)
Run Code Online (Sandbox Code Playgroud)
我听说使用的新方法CGAffineTransformConCat
是concatenating(_:)
,但不完全知道如何根据2个以上的变换设置.
我正在尝试在计算机上设置SSH,但不确定如何访问〜/ .ssh / config文件。他们从github的网站上提到必须修改此文件,但我不确定其位置或修改方式。
在Github上:
如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改〜/ .ssh / config文件,以将密钥自动加载到ssh-agent中并将密码短语存储在密钥链中。
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud) 我们有一个函数,当它完成另一个函数时应该在它的完成块中调用,但是在完成块内的任何东西都不会被调用.这是功能:
func appendAllData (completion: () -> Void) {
guard let movieDetails = self.movieDetailsData else {
// handle nil case
return;
}
if let posterImage = self.movieDetailsData?.poster {
self.posterArray.append(posterImage)
}
if let overview = self.movieDetailsData?.overview {
self.overviewArray.append(overview)
}
if let releaseDate = self.movieDetailsData?.releaseData {
self.releaseInfoArray.append(releaseDate)
}
if let runtime = self.movieDetailsData?.runtime {
self.releaseInfoArray.append(String(describing: runtime))
}
if let genre = self.movieDetailsData?.genre {
if !genre.isEmpty {
self.releaseInfoArray.append(genre[0].name)
}
}
if let budget = self.movieDetailsData?.budget {
self.boxOfficeArray.append(budget)
}
if let revenue = self.movieDetailsData?.revenue { …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 UIView 出现在屏幕上时使用动画过渡。UIView 显示正确,但出现时没有出现动画。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let coreView = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
coreView.backgroundColor = UIColor.cyan
coreView.layer.borderColor = UIColor.darkGray.cgColor
coreView.layer.borderWidth = 8
coreView.layer.cornerRadius = 15
coreView.isHidden = true
self.view.addSubview(coreView)
//The transition occurs here
UIView.transition(with: coreView, duration: 2, options: [.curveEaseInOut, .transitionCurlDown], animations: {
coreView.isHidden = false
}, completion: {_ in})
}
Run Code Online (Sandbox Code Playgroud) 我知道M_PI
现在CGFloat.pi
但不确定M_PI_4
会是什么.我试过CGFloat.pi*4
但这不正确.
当前,有一个滚动视图(整个屏幕)位于uiview(屏幕的底部)后面。我正在尝试检查uiview是否覆盖了滚动条上的标签(iphone se会发生这种情况)。有没有办法检查uiview是否覆盖了滚动视图上的标签?我尝试使用中央cgpoint在滚动视图上查看标签是否小于uiview上的一个点,但是它不允许我比较两个cgpoints的大小:
if atmLabel.center < CGPoint(x: 156, y: 570) {
buttonView.dropShadow(shadowOpacity: 0.5)
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个函数,该函数根据传递给它的自定义JSON模型接受"Codable"类型的参数.错误 :
Cannot invoke 'decode' with an argument list of type '(T, from: Data)'
Run Code Online (Sandbox Code Playgroud)
发生在解码行上,这是函数:
static func updateDataModels <T : Codable> (url: serverUrl, type: T, completionHandler:@escaping (_ details: Codable?) -> Void) {
guard let url = URL(string: url.rawValue) else { return }
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else { return }
do {
let dataFamilies = try JSONDecoder().decode(type, from: data)// error takes place here
completionHandler(colorFamilies)
} catch let jsonErr {
print("Error serializing json:", …
Run Code Online (Sandbox Code Playgroud)