Summary: This supersedes #309 and #305. This is still a **work-in-progress.** **TODO** - [x] Create Xcode project that builds an iOS framework - [x] Fix failing tests on Xcode - [ ] Make `pod lib lint` pass and make sure YogaKit can be included using CocoaPods - [ ] Add `pod lib lint` to .travis.yml - [x] Migrate to travis osx image with Xcode 8.2 **FOLLOW-UP** - [ ] Make YogaKitSample use framework built by new Xcode project. - [ ] Make Travis to upload prebuilt versions of the framework. More [here](https://github.com/Carthage/Carthage#use-travis-ci-to-upload-your-tagged-prebuild-frameworks) - [ ] Upgrade github/jekyll docs about installation using Cocoapods/Carthage Closes https://github.com/facebook/yoga/pull/352 Reviewed By: emilsjolander Differential Revision: D4471950 Pulled By: dshahidehpour fbshipit-source-id: 8f30c69f9a487b26aa2e5f3b66841334b01b0ab1
31 lines
775 B
Objective-C
31 lines
775 B
Objective-C
/**
|
|
* Copyright (c) 2014-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "UIView+Yoga.h"
|
|
#import "YGLayout+Private.h"
|
|
#import <objc/runtime.h>
|
|
|
|
static const void *kYGYogaAssociatedKey = &kYGYogaAssociatedKey;
|
|
|
|
@implementation UIView (YogaKit)
|
|
|
|
- (YGLayout *)yoga
|
|
{
|
|
YGLayout *yoga = objc_getAssociatedObject(self, kYGYogaAssociatedKey);
|
|
if (!yoga) {
|
|
yoga = [[YGLayout alloc] initWithView:self];
|
|
objc_setAssociatedObject(self, kYGYogaAssociatedKey, yoga, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
|
}
|
|
|
|
return yoga;
|
|
}
|
|
|
|
|
|
@end
|