Comments (7)
Can you give an example? If you override any of the properties set in the function, then the computed layout will be incorrect.
from layoutkit.
@nicksnyder That's very true, but what if you want to change the text
after layout?
For example, a time label that display the current time. In my case, I want to change it and change the frame mannually, do you have a better solution?
from layoutkit.
Use viewReuseId to make layout reuse cheaper. Then just update the layout every second.
from layoutkit.
@AlexLittlejohn So your solution is re layout the whole layout stack, at the particular case, I know the layout that I want to change won't affect other layouts. Is there a better way?
from layoutkit.
When updating a layout you use reuse ids to signal the whats changed, whats remaining the same and, by leaving them nil, the layouts that change every update.
Disclaimer: This is just how i use it. It might not be the 100% correct way.
from layoutkit.
@AlexLittlejohn In my understanding, reuse id only help you to avoid init same view multi times, but the calculation of layout still there, right?
from layoutkit.
@RoCry Sorry for slow response, I got sick this week.
what if you want to change the text after layout?
Either re-layout, or capture a reference to the UILabel in the config block (be careful about retain cycles) and then update the text as you see fit. Obviously, if you do the latter then there is no guarantee that the text will not over/underflow the layout.
reuse id only help you to avoid init same view multi times, but the calculation of layout still there, right?
Correct. Allocation and adding subviews is the slowest part. The layout itself is designed to be fast.
@AlexLittlejohn 's advice is correct. Using viewReuseId and recomputing the layout is almost certainly sufficient for your case if you are only doing layout once per second.
For now, the config block is first to prevent someone from accidentally overwriting a property that would potentially affect layout.
from layoutkit.
Related Issues (20)
- Using Custom UIControll callback event & flickery issue
- UIVisualEffectView not supported HOT 2
- Objective-C support HOT 3
- Compile error when using pod HOT 5
- StackLayout last item height seems wrong HOT 6
- Wrong LabelLayout height when using attributed string with kern and line height HOT 2
- Proportionally resizing subviews of vertical StackLayout with max height
- Using LayoutKit with `UITableViewDataSource` HOT 1
- Blurry UILabel HOT 3
- "See More" label & update animatiojn
- LabelLayout goes beyond screen width HOT 4
- Reference documentation is broken
- Not ready for Swift 4.2 HOT 13
- likes flutter ,ah!
- Make the designated initializers with a viewClass argument public
- can we build a layout kit like flutter?
- SizeLayout<CustomView> will not actually create a CustomView HOT 1
- Is Swift 5 support planned ? HOT 5
- iOS 13 Dark mode
- Do you still recommend LayoutKit HOT 4
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 layoutkit.