测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布上次发布 | 2017年2月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 abcd_1234 维护。
iOS UI 工具包,具有 Android 风格的工具。JustUiKit 包含 JustLinearLayout
、JustFrameLayout
等等。它设计用于使 Android 开发者更容易构建 iOS UI。同时,也为 iOS 开发者提供了一种新的构建 UI 的方法。
从示例项目将 JustUiKit 文件夹复制到您的项目。
CocoaPods 安装
CocoaPods 是 Objective-C/Swift 的依赖关系管理器,它自动简化了在项目中使用 TangramKit 等第三方库的过程。您可以使用以下命令安装它:
$ sudo gem install cocoapods
要使用 CocoaPods 将 TangramKit 集成到您的 Xcode 项目中,在 Podfile 中指定它:
platform :ios, '8.0'
pod 'JustUiKit', '~> 0.2.1'
然后,运行以下命令:
$ pod install
一个布局,它将其子元素排列在单列或单行中。可以通过 orientation
设置行的方向。您还可以指定重力,通过设置 gravity
来指定所有子元素的排列,或者通过设置 LinearLayoutParams
的 weight 成员来指定特定的子元素增长以填充布局中剩余的空间。默认方向是水平。
您可以设置 重力
使视图布局在父视图的指定空间。通过设置 边距
,您可以在视图的四个方向上保持空间。默认情况下,LinearLayout 在 水平
方向布局子元素,并且您可以将它更改为 垂直
。
示例
let parentView = JustLinearLayout(frame: UIScreen.main.bounds, orientation: .Vertical)
let params = LinearLayoutParams(
width: LayoutParams.WRAP_CONTENT,
height: LayoutParams.WRAP_CONTENT)
let centerParams = LinearLayoutParams(params)
centerParams.layoutGravity = Gravity.Horizontal.getValue()
let marginParams = LinearLayoutParams(params)
marginParams.topMargin = 10
parentView.addView(createView(), centerParams)
parentView.addView(createView(), marginParams)
使用四方向的 边距
,您可以在视图中保留内空间。而 重量
描述了子视图的定位。默认为 Gravity.TOP | Gravity.LEFT。如果此布局具有垂直方向,则在有额外垂直空间的情况下,这控制所有子视图的位置。如果此布局具有水平方向,则控制子视图的对齐方式。
参见重力 获取更多详细信息。
示例
let parentView = JustLinearLayout(frame: UIScreen.main.bounds, orientation: .Vertical)
let params = LinearLayoutParams(
width: LayoutParams.WRAP_CONTENT,
height: LayoutParams.WRAP_CONTENT)
params.weight = 1
let paddingParams = LinearLayoutParams(params)
paddingParams.paddingTop = 10
parentView.addView(createView(), params)
parentView.addView(createView(), paddingParams)
FrameLayout设计用于在屏幕上划分一个区域以显示单个项目。通常,应该使用FrameLayout来包含一个子视图,因为它可以很难以可伸缩的方式组织子视图,以便在不发生重叠的情况下适应不同的屏幕尺寸。然而,你可以向FrameLayout添加多个子视图,并通过为每个子视图分配重力(layoutGravity)来控制它们在FrameLayout中的位置。
如果不使用任何Margin
或Padding
来更改视图的位置,所有视图都将像堆叠一样添加到屏幕的left|top
处。
示例
let parentView: JustFrameLayout = JustFrameLayout(width:MATCH_PARENT, height:MATCH_PARENT)
let params: FrameLayoutParams = JustFrameLayoutParams(width: WRAP_CONTENT, height: WRAP_CONTENT)
parentView.addView(createView(rgb:0xE4E1D8), params)
parentView.addView(createView(rgb:0x89A49D), params)
parentView.addView(createView(rgb:0x877B6B), params)
你可以使用水平和垂直重力。你还可以使用如left|bottom
、center_horizontal|center_vertical
等同时使用它们。
参见重力 获取更多详细信息。
示例
let parentView: FrameLayout = FrameLayout(width:MATCH_PARENT, height:MATCH_PARENT)
let params: FrameLayoutParams = FrameLayoutParams(width: WRAP_CONTENT, height: WRAP_CONTENT)
let b_l = FrameLayoutParams(params)
b_l.layoutGravity = Gravity.BOTTOM | Gravity.TOP
let c_r = FrameLayoutParams(params)
c_r.layoutGravity = Gravity.CENTER_HORIZONTAL | Gravity.RIGHT
parentView.addView(createView(rgb:0xE4E1D8), b_l)
parentView.addView(createView(rgb:0x89A49D), c_r)
parentView.addView(createView(rgb:0x877B6B), params)
一个布局,子视图的位置可以相对于彼此或相对于父视图来描述。
请注意,您不能在RelativeLayout的大小与其子视图的位置之间有循环依赖关系。例如,您不能有一个高度设置为WRAP_CONTENT的RelativeLayout,同时一个子视图设置为ALIGN_PARENT_BOTTOM。
在RelativeLayout中,您可以使用所有的Margin
、Padding
和Gravity
。您还可以使用一些Align
函数。例如,如果视图是alignLeftTo
,则其左侧将与锚视图设置相等。您可以使用一套如leftOf
、rightOf
、bottomOf
等函数,将当前视图设置在锚视图的左侧。
// view1 view2 view3 view4 view5
let params = RelativeLayoutParams.generateDefaultParams()
let params1 = RelativeLayoutParams(params)
params1.centerInHorizontal()
let params2 = RelativeLayoutParams(params)
params2.bottomTo(view4)
params2.topMargin = xxx
let params3 = RelativeLayoutParams(params)
param3.alignRightTo(view1)
let params4 = RelativeLayoutParams(params)
params4.centerInParent()
let params5 = RelativeLayoutParams(params)
params5.alignParentBottom()
// add view to parent
常量 | 描述 |
---|---|
ABOVE | 使一个子视图的下边缘与另一个子视图的上边缘对齐的规则。 |
ALIGN_BASELINE | 使一个子视图的基线与另一个子视图的基线对齐的规则。 |
ALIGN_BOTTOM | 使一个子视图的下边缘与另一个子视图的下边缘对齐的规则。 |
ALIGN_LEFT | 使一个子视图的左边缘与另一个子视图的左边缘对齐的规则。 |
ALIGN_PARENT_BOTTOM | 使子视图的下边缘与其RelativeLayout父视图的下边缘对齐的规则。 |
ALIGN_PARENT_LEFT | 使子视图的左边缘与其RelativeLayout父视图的左边缘对齐的规则。 |
ALIGN_PARENT_RIGHT | 使子视图的右边缘与其RelativeLayout父视图的右边缘对齐的规则。 |
ALIGN_PARENT_TOP | 使子视图的上边缘与其RelativeLayout父视图的上边缘对齐的规则。 |
ALIGN_RIGHT | 使一个子视图的右边缘与另一个子视图的右边缘对齐的规则。 |
ALIGN_TOP | 使一个子视图的上边缘与另一个子视图的上边缘对齐的规则。 |
BELOW | 使一个子视图的上边缘与另一个子视图的下边缘对齐的规则。 |
CENTER_HORIZONTAL | 相对于其RelativeLayout父视图的边界在水平方向上居中子视图的规则。 |
CENTER_IN_PARENT | 相对于其RelativeLayout父视图的边界居中子视图的规则。 |
CENTER_VERTICAL | 相对于其RelativeLayout父视图的边界垂直方向上居中子视图的规则。 |
END_OF | 使一个子视图的起始边缘与另一个子视图的结束边缘对齐的规则。 |
LEFT_OF | 对齐子元素右边缘与另一个子元素左边缘的规则。 |
RIGHT_OF | 对齐子元素左边缘与另一个子元素右边缘的规则。 |
必须是一个或多个(用'|'分隔)以下常量值之一。
常量 | 值 | 描述 |
---|---|---|
top | 0x30 | 将对象推进其容器的顶部,不改变其大小。 |
bottom | 0x50 | 将对象推进其容器的底部,不改变其大小。 |
right | 0x05 | 将对象推进其容器的右边,不改变其大小。 |
center_vertical | 0x10 | 将对象放置在其容器的垂直中心位置,不改变其大小。 |
center_horizontal | 0x01 | 将对象放置在其容器的水平中心位置,不改变其大小。 |
center | 0x11 | 在垂直和水平轴上将其对象放置在其容器的中心,不改变其大小。 |
如果您有任何不便或问题,请随时发送您的反馈。您可以联系我:
MIT License
Copyright (c) 2017 JustWe
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.