Latest 1.1.0
Homepage https://github.com/sanekgusev/SGVAppearanceProxy
License MIT
Platforms ios 5.0, requires ARC
Frameworks Foundation, UIKit
Authors

An UIAppearance proxy wrapper to work around performance issues on iOS7.

UIAppearance performs slow under iOS7 because of some internal changes: certain setter methods (those with axis values or those with more than one argument) end up calling an expensive method_exchageImplementations() function.

This proxy wraps around original appearance proxy and uses the message forwarding mechanism of Objective-C to translate the affected method calls into methods with a single argument, and then passes them along to the original proxy, thus mitigating the problem.

Caveats

This only works for UIView subclasses. Non-UIView UIAppearance-enabled classes like UIBarButtonitem have their UIAppearance proxies send invocations to a private UIView subclass, so it is not possible to legally add new methods to them to pull the same trick.

Latest podspec

{
    "name": "SGVAppearanceProxy",
    "version": "1.1.0",
    "summary": "An UIAppearance proxy wrapper to work around performance issues on iOS7.",
    "description": "                      UIAppearance performs slow under iOS7 because of some internal changes: certain setter methods (those with axis values or those with more than one argument end up calling an expensive method_exchageImplementations() function. n                      This proxy wraps around original appearance proxy and uses the message forwarding mechanism of Objective-C to translate the affected method calls into methods with a single argument, and then passes them along to the original proxy, thus mitigating the problem.n",
    "homepage": "https://github.com/sanekgusev/SGVAppearanceProxy",
    "license": "MIT",
    "authors": {
        "Alexander Gusev": "[email protected]"
    },
    "social_media_url": "http://twitter.com/sanekgusev",
    "platforms": {
        "ios": "5.0"
    },
    "source": {
        "git": "https://github.com/sanekgusev/SGVAppearanceProxy.git",
        "tag": "1.1.0"
    },
    "source_files": "src",
    "frameworks": [
        "Foundation",
        "UIKit"
    ],
    "requires_arc": true
}

Pin It on Pinterest

Share This