Already have an account? Log in
Released one year ago
Please remember to
after upgrading Fuse.
Shadowtag, which can often replace the slower
.removeRange()for faster list manipulation
.count()dealing incorrectly with some operations
.count()now supports objects as filters, e.g.
.any( [criteria] )which returns an observable boolean of whether the observable contains an object that meets the criteria.
.first( [criteria] )and
.last( [criteria] )which returns an observable of the first/last item that meets the criteria, or simply the first/last element if the criteria is omited.
Observable.inner()superpowers to ease two-way bindings on
.inner(): support for
.twoWayMap()to ease construction of components with two-way bindable properties. For example usage, see https://github.com/Duckers/FusePlayground/tree/master/Components/DateEditor
.inner(): support for
.setInnerValue()which sets the value of the inner observable without sending a message back to the observable returned by
.inner(). When creating a component with a two-way bindable property, this should be used to notify users of the component that a property has been changed from within the component, typically driven by user interaction.
ux:Propertycausing unpredictable behavior
ux:Propertyof a class type (e.g.
Brush) with value
nullin Uno will now produce an empty observable
map()will unexpectedly map
nullinstead of a real value (often leading to crash). When the Uno side is
obs.valuewill now be
undefined(as the observable is empty,
length=0). This might have backwards incompatible side effects if you relied on
Deselected. As this is a new feature the API may still undergo some minor changes in the upcoming releases.
The Inspector was intended as a proof-of-concept and testing ground for some of our ideas around visual tooling. It has now overstayed its welcome, been a fairly low priority for a while (and contained a few long-lived bugs) so we finally decided to remove it. We will however take what we learned from it and be back with much cooler visual tools in the future! :)
WhileScrolledtriggers which respond to scrolling within a region of the ScrollView. These provide more flexibility e.g. for dynamically loading more data in an infinite feed (compared to
LayoutRole="Placeholder"to create items that are part of a ScrollView or Navigation's layout but not a logical item (like page, or scroll anchor). This is an experimental feature and it's behaviour may change in future releases.
Cloneto help avoid confusion about what they do.
LinearRangeBehavior.Orientationto allow vertical range controls
WhileNavigatingchanged to a
WhileNavigatingnow finds ancestor navigation
MapMarkernow has an
IconFileattribute, letting you specify a file asset to replace the marker icon graphic.
MapMarker. These are normalized coordinates from 0,0 to 1,1 determining the point on the icon graphic where it rests on the map. This defaults to 0.5, 0.5, being centered.
getLocationnow respects its timeout parameter, and that multiple concurrent calls to
getLocationare handled gracefully.
Deferred. This affects code where these triggers are used directly inside each other without an intervening
Panelwas the previous workaround).
Deferredwas not removed while unrooting the
Selecttrigger has been renamed
Withto better reflect what it does and not cause confusion with the selection API.
WhileTriggerthat tests conditions on a string value.
<NativeViewHost />can now have URL-sources with
<Image Url="..." />
cacheDirectorywhile running with
Shadow-tag that is generally a faster alternative to
DropShadow. It works by approximating the background of a rectangle by applying a gradient on the distance field of a rectangle instead. This only works well for rectangles and panels, but has a
Mode-property that can be set to
PerPixel(instead of it's default,
Background) to get the same effect as with
StatusBarvisibility would be reset whenever the softkeyboard is onscreen. The visibility is restored when the keyboard is dismissed
Node, not just a
Xcode.FrameworkDirectory, meaning that
Xcode.FrameworkDirectorywill rarely be necessary to use.
Fuse.Physics.BodyAttr. No UX changes are required.
Fuse.Elements.LayoutMasterAttr. No UX changes are required.
Element.OnDrawhas slightly changed meaning. It used do draw both the element itself and it's children (which was implemented in the base-class). Now it just draws the element itself. Instead, we have a new method called
Element.DrawWithChildrenthat will call
Element.OnDrawand then draw the children. This was done to accomedate
Layer.Underlay, which required the base-class to draw some things both before and after the element itself was drawn. If you want to avoid drawing the children under some circumstances, override this method instead of