Comments (12)
If you are doing your layout in custom UIView subclasses then you can already take advantage of live reload by using Classy to set the constants of your constraints. You would need to turn your constants into properties on your view class.
custom UIView subclass:
@interface MYCustomView : UIView
@property (nonatomic, assign) UIOffset someOffset
@end
@implementation MYCustomView
- (void)setSomeOffset:(UIOffset)someOffset {
_someOffset = someOffset
[self setNeedsUpdateConstraints];
}
- (void)updateConstraints {
[super updateConstraints];
[self.someView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self).with.offset(self.someOffset.vertical);
make.left.equalTo(self).with.offset(self.someOffset.horizontal);
}];
}
@end
in classy stylesheet
MYCustomView {
someOffset 10, 5
}
Let me know how you get on 👍
from masonry.
Thats a great idea! Would be nice to be able to use it everywhere (also when not doing subclasses) and without the boilerplate. Maybe I can do categories on UIView and UIControl to give them new margin and size properties that will be stored in an ascociated object and in the setter call -setNeedsDisplay on the super view. I'll try to explore this :)
from masonry.
Seems to work very well with a UIView category to specify optional size and margin that can be referenced from the mas_updateConstraints method. Check out my example here: https://github.com/olegam/LiveLayoutDemo
What do you think of this approach? Something that would be suitable to ship wit Classy?
from masonry.
Glad it's working for you 👍
In terms of including it in classy I have some reservations, as I would rather not make classy and masonry dependent on each other for people who want to use one and not the other.
Also most of the time I would recommend using a custom UIView subclass so that you keep view logic out of your UIViewControllers.
from masonry.
Ok cool. And thanks again for the advice. I think I will then make a small pod with the category and write a blog post about the approach.
from masonry.
Sounds great! Looking forward to it :)
from masonry.
Looking forward too 👍 please, publish the link here, I love Masonry and is always nice to see how others use it!
from masonry.
Here's the link to my post: http://codeblog.shape.dk/blog/2013/12/16/live-editing-layout-constants-using-classy/
from masonry.
Thanks @olegam!
from masonry.
Amazing, thanks @olegam! 👍
from masonry.
Awesome one, cheers @olegam !
from masonry.
Very cool @olegam !
from masonry.
Related Issues (20)
- equalTo(@[@10,@30]),What is the meaning of using an array in parentheses of equalTo HOT 2
- tableViewHeaderView & textView HOT 1
- Snap
- Duplicate keys for NSLayoutAttributeBaseline and NSLayoutAttributeLastBaseline in NSLayoutConstraint+MASDebugAdditions.m HOT 1
- mas_
- instance method conflicts with same method from another category 警告
- Version 1.1.0 in Mapping to The Old Code, not The Newest Code ! HOT 3
- swift package!!!! HOT 1
- 'MASConstraint' with definition in module 'Masonry.MASConstraint' has different definitions in different modules; first difference is this method
- 缩小控件高度的动画 控件会错位平移
- Label 使用label.numberOfLines来切换行数,上下文会莫名多出来一部分空白 HOT 1
- the newest version is 1.1.0 , but the 1.1.0 is not newest code compare with the branch of master HOT 1
- 小数
- mas_equalTo crash!!!
- Is there a release plan for a new version?
- [self.installedView addConstraint:layoutConstraint]; 这句代码偶发崩溃
- ~/Library/Developer/Xcode/UserData/CodeSnippets HOT 1
- When the parent view does not add a constraint or set a frame, the child view sets a constraint with a warning.
- [MASConstraintMaker install] Crash occasionally online HOT 2
- 苹果新政策要求三方库添加隐私清单PrivacyManifest,能否支持一下? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from masonry.