小编Hug*_*nso的帖子

如何在iOS 13上更改状态栏的背景颜色和文本颜色?

随着iOS 13的到来,statusBar的视图不再能通过低谷访问:

value(forKey: "statusBar") as? UIView
Run Code Online (Sandbox Code Playgroud)

由于:

由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“在UIApplication上名为-statusBar或-statusBarWindow的应用程序:此代码必须更改,因为不再有状态栏或状态栏窗口。而是在窗口场景上使用statusBarManager对象。”

但是目前尚不清楚应如何使用它来更改颜色,因为keyWindow?.windowScene?.statusBarManager它似乎不包含与之相关的任何内容。

我正在编译具有(iOS 10,*)兼容性的代码,因此我打算继续使用UIKit。

关于这个主题有什么想法吗?

statusbar ios swift ios13

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

为什么在swift中创建String时会出现内存泄漏?

泄漏是根泄漏,在这个图像中是在同一条线上多次引起,但下面还有另一个被称为单次泄漏并且也会产生泄漏.

在此输入图像描述

这是调用之前声明的代码行之后的调用堆栈.

在此输入图像描述

这是仪器泄漏所在的类:

class Item {
 var id: String!
 var name: String!

 internal init(name: String) {
    self.name = name
    self.id = name
 }

 var description: String {
    return "(\(id)) \(name)"
 }
}
Run Code Online (Sandbox Code Playgroud)

在计算变量描述包含的行中检测到泄漏,return "(\(id)) \(name)"并在将描述更改为:

var description: String {
    return "(" + id + ") " + name
}
Run Code Online (Sandbox Code Playgroud)

更新:

要么

var description: String {
    if let id = self.id as? String, let name = self.name as? String {
        return …
Run Code Online (Sandbox Code Playgroud)

memory-leaks swift

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

UIViewController扩展不允许在Swift中覆盖与视图相关的函数?

在尝试为UIViewController实现扩展时,我意识到没有正常的方法,或者不允许覆盖这些函数(即使它们可用于UICollectionViewControllerUITableViewController):

extension UIViewController{
  public override func viewWillAppear(){
    super.viewWillAppear()
    //do some stuff
 }
}
Run Code Online (Sandbox Code Playgroud)

我意识到没有正常的方法,或者不允许覆盖这些函数(即使它们可用于UICollectionViewControllerUITableViewController):

  • viewDidLoad中
  • viewWillLoad
  • viewWillAppear中
  • viewDidAppear

有一些方法可以做到这一点?我想在那里有一些实现,并为我的应用程序上的每个UIViewController工作...所有在一个地方.

请注意,不想创建一个新类继承UIViewController,重写这些方法并让我的控制器扩展它.这是一个显而易见且最简单的解决方案,但这并不能满足我的目标.

我在XCode 6.3中使用swift 1.2

uiviewcontroller ios swift ios8

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

如何在Apple Watch中更改模态segue中的"取消"标签

当我打开模态视图时,如何更改左上角出现"取消"的标签...我希望它是一个带图像的按钮.

iphone ios swift apple-watch watchkit

16
推荐指数
2
解决办法
7620
查看次数

在swift中打印结构名称

可以在swift中知道结构的名称吗?我知道这可能是class:

class Example {
   var variable1 = "one"
   var variable2 = "2"
}
Run Code Online (Sandbox Code Playgroud)

打印这个类名,我只想做:

NSStringFromClass(Example).componentsSeparatedByString(".").last!
Run Code Online (Sandbox Code Playgroud)

但我可以做类似的事struct吗?

如果我有struct:

struct structExample {
   var variable1 = "one"
   var variable2 = "2"
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到名称" structExample "这个struct

谢谢.

struct swift

15
推荐指数
2
解决办法
4670
查看次数

iOS9 MFMailComposeViewController的NavigationBar中的自定义字体?

好吧,这是我到目前为止:

在此输入图像描述

你可以在这里注意到我设法改变字体大小所以这很好,但我想要的样式还包括一个自定义字体.

请注意,实际样式会显示片刻,然后当状态栏更改为黑色字体时,自定义字体会丢失.

这是我在applicationDidFinish...中使用的代码

UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent

UINavigationBar.appearance().titleTextAttributes = [
     NSFontAttributeName: UIFont(name: "<MyCustomFont>", size: 32)!,
     NSForegroundColorAttributeName : UIColor.whiteColor(),
    ]

UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().opaque = true
UINavigationBar.appearance().barStyle = UIBarStyle.Black
UINavigationBar.appearance().barTintColor = UIColor.BlueColor()

UIBarButtonItem.appearance().tintColor = UIColor.whiteColor()

UIBarButtonItem.appearance().setTitleTextAttributes([
     NSFontAttributeName: UIFont(name: "<MyCustomFont>", size: 18)!,
     NSForegroundColorAttributeName : UIColor.whiteColor(),
    ], forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)

注意:

我有一个实例,EKEventEditViewController风格正确应用.

问题似乎是MailComposer的相关问题

objective-c ios swift ios9 mfmailcomposeviewcontroller

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

如何在Swift中以编程方式在图像上添加渐变层?

我想在UIImage上放置一个预定义的透明到黑色渐变的图层,其内容图像通过网络加载并在其上创建阴影效果.

我不想通过加载具有这种渐变的png来做到这一点.

iphone xcode ios swift ios8

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

iOS 上已弃用的 -undefined dynamic_lookup - Xcode

我正在尝试在 Xcode 中创建一个新应用程序,其中我使用 Firebase 作为后端。在我制作的其他应用程序中,我还没有使用 CocoaPods,但是为了在这个应用程序中使用 Firebase,我需要通过 Podfile 安装它。我遵循了 Firebase 的指示,而且一切都是最新的。当我创建项目时,一切都很好,但是在创建工作区并在 Xcode 中启动它之后,我收到一条警告,提示 -undefined dynamic_lookup 在 iOS 上已折旧。有谁知道如何解决这个警告?我的 podfile 看起来像这样:

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'BodyComp' do
pod 'Firebase', '>= 2.5.1'
end

target 'BodyCompTests' do

end

target 'BodyCompUITests' do

end
Run Code Online (Sandbox Code Playgroud)

干杯

xcode cocoapods firebase swift

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

如何使用Swift检测我的代码是否在WatchKit或iOS上运行?

我有一个同时具有两个目标的类,我想知道我是否在Watch或iPhone目标上运行它的方法.

请,只是斯威夫特的答案.

ios swift watchkit

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

如何防止WKInterfaceController滚动?

我有一个WKInterfaceController,我不希望它可滚动,但是即使将我的主组的高度和宽度在相对于容器中设置为1时,它似乎也决定滚动。

我以为只有在看到Fitstar和Skype应用程序之后才有可能。

ios swift watchkit

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

如何覆盖NSDate描述?..方法调酒?

我该怎么打电话

print(NSDate()) 
Run Code Online (Sandbox Code Playgroud)

和而不是接收通常的响应,获得所述一个我有一个命名的函数getString()是一个部分extensionNSDate.

这是我的扩展:

extension NSDate {

   //NSDate to String
    public func getString() -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
        dateFormatter.locale = NSLocale.currentLocale()

        return dateFormatter.stringFromDate(self)
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我不想只使用:

NSDate().getString()
Run Code Online (Sandbox Code Playgroud)

我想覆盖description这个类的原始.

更新:

所以,一切看起来像唯一的选择是方法调整,如果可能的话.

谁对赏金感兴趣?

当心

我这样做只是为了个人成长并理解这个概念,而不是计划在这种情况下使用它来运送应用程序,现在甚至不确定我可以使用它的场景.

nsdate ios swift method-swizzling swift2

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

UICollectionView滚动到Index处的项目

我已成功在索引处滚动项目,例如,如果用户点击按钮,则转到最后一项

这是我用过的代码

 self.collection.scrollToItemAtIndexPath(NSIndexPath(forItem: self.array.count - 1, inSection: 0), atScrollPosition: UICollectionViewScrollPosition.Top, animated: true) 
Run Code Online (Sandbox Code Playgroud)

但我的问题是如何知道用户是在底部还是在顶部UICollectionView

我可以通过创建2个函数来做到这一点,如果用户点击TOP UIButton它会上升,反之亦然......

但我只想用一个单一的方式做到这一点UIButton.因此,如果用户按下按钮,代码应该知道用户是否在底部并且向上,反之亦然.我查看了每个函数,UICollectionView但似乎没有return用户在哪个项目.

我想到了一些在逻辑上可能正确的东西

var someBool: Bool!

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
 let tempIndex: Int = self.array.count / 2 

 if indexPath.row > tempIndex{
   someBool = true // UP
 } else {
  someBool = false // Down
 }
 ...
}

@IBAction func buttonPressed{
   if someBool{
     self.collection.scrollToItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0), atScrollPosition: UICollectionViewScrollPosition.Top, animated: true) 
   } else { …
Run Code Online (Sandbox Code Playgroud)

xcode uicollectionview swift

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

使用 Swift 在 Share 中自定义内容

我正在尝试为我的游戏制作一个分享按钮。您知道,当您单击时,弹出菜单会显示您的选项。我想知道如何让不同的选项说不同的事情。我还想知道如何制作“保存到相机胶卷”选项。我将在下面发布我的代码。

@IBAction func share(sender: UIButton) {

    let firstActivity = "Yes! I scored \(ScoreNumber) in Dotcha! #dotcha @Snowcapps_Dev https://itunes.apple.com/us/app/dotcha!/id977870313?ls=1&mt=8" 

    let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [firstActivity], applicationActivities: il)        
    self.presentViewController(activityViewController, animated: true, completion: nil)        
}
Run Code Online (Sandbox Code Playgroud)

share swift

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