小编Jor*_*orn的帖子

在NSUserDefaults中覆盖AppleLanguages

如果我在NSUserDefaults中覆盖/更改AppleLanguages,则在更改系统语言时,iOS不再更新列表.如果我保持列表不变,则数组中的第一个对象将始终是系统语言,但是,如果我在索引0处插入新对象,稍后更改系统语言,iOS将不会将新语言放在顶部列表了.有没有办法在NSUserDefaults中更改AppleLanguages,并且系统语言更改后系统仍然会更新列表?

来自Accatyyc的解决方案非常出色,如果您使用Swift,这里是解决方案:

  1. 创建一个main.swift文件,在接受的答案中添加Swift版本的代码:

    NSUserDefaults.standardUserDefaults().removeObjectForKey("AppleLanguages")
    UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))
    
    Run Code Online (Sandbox Code Playgroud)
  2. 转到AppDelegate并删除以下行:

    @UIApplicationMain //Removing this tells Xcode to use your main.swift file
    
    Run Code Online (Sandbox Code Playgroud)

nsuserdefaults ios

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

CIAdditionCompositing 产生不正确的效果

我正在尝试通过平均其他几个图像来创建图像。为了实现这一点,我首先将每个图像变暗一个与我平均的图像数量相等的因子:

func darkenImage(by multiplier: CGFloat) -> CIImage? {
    let divImage = CIImage(color: CIColor(red: multiplier, green: multiplier, blue: multiplier))

    let divImageResized = divImage.cropped(to: self.extent) //Set multiplier image to same size as image to be darkened

    if let divFilter = CIFilter(name: "CIMultiplyBlendMode", parameters: ["inputImage":self, "inputBackgroundImage":divImageResized]) {

        return divFilter.outputImage
    }

    print("Failed to darken image")
    return nil
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我将每个变暗的图像添加在一起(将图像 1 和 2 添加在一起,然后将结果与图像 3 等一起添加):

func blend(with image: CIImage, blendMode: BlendMode) -> CIImage? { 
    if let filter = CIFilter(name: blendMode.format) { //blendMode.format is CIAdditionCompositing …
Run Code Online (Sandbox Code Playgroud)

macos ios ciimage swift

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

更改MFMessageComposeViewController收件人文本颜色

iOS7使用中发送短信时MFMessageComposeViewController,某些UINavigationBar和短信收件人栏符合[UINavigationBar appearance]; 然而,有些人也失踪了.首先,"取消"按钮的文本是默认的蓝色,而不是我想要的白色.我已设法解决这个问题

[[messageController navigationBar] setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

但是,收件人的文本和添加(+)按钮也使用默认颜色(绿色和蓝色).背景颜色继承自UINavigationBar,但不是文本颜色.有没有办法改变这些文字颜色?

uinavigationbar ios mfmessagecomposeviewcontroller ios7

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

iOS 8和iOS 9上的NSURLSession之间的区别?

我有以下代码来验证MediaWiki服务器的iOS应用程序:

let task = NSURLSession.sharedSession()
        task.configuration.HTTPAdditionalHeaders = ["Authorization": "Basic " + base64EncodedCredentials]

        task.dataTaskWithURL(url!) {(data, response, error) in
            dispatch_async(dispatch_get_main_queue(), {

                if data != nil {
                    let result = NSString(data: data!, encoding: NSUTF8StringEncoding)
                    if resultIsValid(result) {
                        //Do authentication stuff
                    } else {
                        self.showLoginErrorMessage()
                    }
                } else {
                    self.showLoginErrorMessage()
                }
            })
            }.resume()
Run Code Online (Sandbox Code Playgroud)

在iOS 8上,这很完美,我收到了一个HTTP 200 OK响应.但是,在iOS 9上,我收到了401未授权.不幸的是,我无法访问服务器以查看它实际收到的内容,而且它位于内部网络上,因此我无法链接到服务器.它使用HTTP基本访问身份验证,因此我假设它应该与具有该身份验证类型的任何其他服务器相同.

从iOS 8到9的API是否有任何变化可能导致此类问题?例如,可以更改/删除/添加其他默认标头,如内容类型或用户代理吗?

编辑:在使用requests.in测试之后,我发现通过添加Content-Type,这是iOS 8中标题的一部分,但不是在iOS 9中.在iOS 8中,我仍然可以在不设置内容的情况下获取请求-Type,但它在iOS 9请求中不存在仍然很奇怪.

basic-authentication ios nsurlsession swift

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

旋转时更改应用程序后面的颜色

当iOS应用旋转时,当应用介于纵向和横向之间时,它将显示黑色背景。是否可以将此颜色从默认的黑色更改为白色?更改UIWindow的背景颜色将无济于事。这是旋转过程中Safari中黑色背景的示例: Safari轮换

screen-rotation ios

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

确定UIViewController是否在Container View中

是否可以检测UIViewController是否在容器视图内(例如以模态显示,是否在UINavigationViewController内部等)?

编辑:澄清此问题的原因:我有一个VC,有时显示为表单,其他时候是另一个VC(在容器视图中)内的子VC。我希望能够检查VC的实际显示方式(“表单”或在“容器视图”中)。

ios uicontainerview

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