先看一下最终效果
![](https://img.haomeiwen.com/i6719795/c4eca2b03efa15d5.png)
准备
下载NoMark
素材PSD下载 密码:hp5g
用NoMark打开Register.psd
1. 背景
背景是一个从上到下的渐变,那么可以取上下的颜色,在app里做出渐变。也可以用一个渐变的图片做出拉伸,这里选择第一种方法。从NoMark界面上部点击取色
![](https://img.haomeiwen.com/i6719795/ef19bff83feaf606.png)
取色后会自动保存到剪贴板,也可再次点击吸管显示颜色历史
![](https://img.haomeiwen.com/i6719795/c468fca8227d6a50.png)
拿到两个颜色后可以做出渐变:
- (void)viewDidLoad {
[super viewDidLoad];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = @[
(id)[UIColor colorWithHex:0x503A5B].CGColor,
(id)[UIColor colorWithHex:0x1D1D1D].CGColor
];
[self.view.layer insertSublayer:gradient atIndex:0];
}
![](https://img.haomeiwen.com/i6719795/7dc466288be3ffe2.png)
2. 导出图标到Xcode
由于我们要导出图标给iOS用,根据实际情况选择适当缩放:
![](https://img.haomeiwen.com/i6719795/4cb3a270c1fca42f.png)
再打开设置,去掉@1x:
![](https://img.haomeiwen.com/i6719795/f6d57db7f7ee26d1.png)
在NoMark中选中要导出的图标,然后拖动这个
![](https://img.haomeiwen.com/i6719795/45bb920f6ff04fad.png)
拖到Xcode的
Assets.xcassets
如果操作无误,Assets.xcassets
类似于这样:
![](https://img.haomeiwen.com/i6719795/edee04ae6df53029.png)
注意,有些图标是好几层构成的,比如下方的那些按钮
![](https://img.haomeiwen.com/i6719795/bf92314a9ee06f35.png)
在NoMark中右键弹出菜单,可以选择
![](https://img.haomeiwen.com/i6719795/1b81981c5598f6cd.png)
![](https://img.haomeiwen.com/i6719795/b8fccb9cb9d691fa.png)
选中输入框,显示326pt * 56.5pt
![](https://img.haomeiwen.com/i6719795/4510cd9d56fae641.png)
这时候就要灵活处理了,由于不同屏幕的宽度并不一样,而输入框几乎辅满屏幕,所以不适合使用固定宽度。
保持输入框选中,鼠标移动到外面:
![](https://img.haomeiwen.com/i6719795/d970824c4135ee3f.png)
这里,我使用高度固定56.5pt,左右距离为25pt,在Xcode中创建约束。
![](https://img.haomeiwen.com/i6719795/1105c61bceca524e.png)
在NoMark中查看图标与输入框的距离:
![](https://img.haomeiwen.com/i6719795/13029e32862f9ea3.png)
数值和图标都有了,撸代码
UIImage *image = [UIImage imageNamed:@"username_icon"];
int const paddingHorizontal = 21.5;
int const paddingVertical = 15;
UIView *paddingView = [UIView new];
paddingView.frame = CGRectMake(0, 0, image.size.width + paddingHorizontal * 2,
image.size.height + paddingVertical * 2);
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(paddingHorizontal, paddingVertical,
image.size.width, image.size.height);
[paddingView addSubview:imageView];
self.userTextField.backgroundColor =
[UIColor colorWithHex:0x4D4253]; // 使用取色功能拿到背景色
self.userTextField.leftView = paddingView;
self.userTextField.leftViewMode = UITextFieldViewModeAlways;
![](https://img.haomeiwen.com/i6719795/7a3aedb4a4b8f9e0.png)
看上去还差字体就完成输入框了,在NoMark中选中输入框中的文本:
![](https://img.haomeiwen.com/i6719795/b817c968cca39ece.png)
self.userTextField.textColor = [UIColor whiteColor];
self.userTextField.font = [UIFont systemFontOfSize:13];
运行结果
![](https://img.haomeiwen.com/i6719795/f75325911bf8e36b.png)
是不是很简单?其他操作大同小异,有空我把源码整理一下,发上来。
网友评论