- 【iOS】Masonry学习
键盘敲没电
ios学习cocoa
Masonry学习前言NSLayoutConstraintMasonry学习mas_equalTo和equalToMasonry的优先级Masorny的其他写法Masonry的使用练习前言Masonry是一个轻量级的布局框架。通过链式调用的方式来描述布局,是排版代码更加简洁易读。masonry支持iOS和MacOSX。相比原生的NSLayoutConstraint,提高了使用容易度和代码的可阅读程
- iOS开发中使用代码修改Xib中控件的约束--NSLayoutConstraint
梁森的简书
背景某个页面是使用Xib做的,现在需要上面的某些控件根据某些状态的变化位置发生变化。如果我们直接在代码中设置这些控件的frame是无效的,这时我们需要使用NSLayoutConstraint。做法首先获取某个控件的某个约束的NSLayoutConstraint如图所示:0.0.png0.1.png代码实现0.2.png****本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都
- SDAutoLayout 和 Masonry
哈布福禄克
Masonry和SDAutoLayout最大的不同就是上面所说一个基于对frame的设置,一个是基于NSLayoutConstraint.UIView*view1=UIView.new;view1.backgroundColor=[UIColorgreenColor];[self.viewaddSubview:view1];view1.sd_layout.rightSpaceToView(supe
- iOS布局
iOS小洁
布局方式AutoLayout,AutoresizingMaskAutoLayoutNSLayoutConstraint使用使用很久的Masonry,但是对其原理不是很了解,大概看了一下,是基于NSLayoutConstraint的一个框架。今天就先看下NSLayoutConstraint的使用NSLayoutConstraint的使用方式+(NSArray*)constraintsWithVisu
- Masonry源码分析与链式编程
sun_glory
在ios开发中,Masonry是最常用的第三方开发布局框架。Masonry是基于自动布局技术实现的,所以说Masonry是NSLayoutConstrait的简易封装版本,底层还是封装系统的NSLayoutConstraint来实现的。下面的代码就是一段典型的布局代码:[self.bgViewmas_makeConstraints:^(MASConstraintMaker*make){make.t
- iOS Masonry学习和探究
炒河粉儿
前言开发中对UI进行布局,有很多种,常用的包括frame,Autolayout,storyboard,Masonry等。代码布局添加约束依赖使用masonry框架是一个很不错的选择。此篇文章就是对masonry框架内部实现进行一个探究,从而学习他的编程思想。Masonry的核心思想Masonry框架其实是对NSLayoutConstraint的一个封装,使用了函数式编程和链式编程的思想,使描述语法
- 笔记:NSLayoutAnchor方式进行自动布局
林鹏_dev
大多数情况下,我们都是使用Masonry这个三方库来进行约束布局,其实苹果开放的NSLayoutAnchor来布局也很方便,他跟Masonry一样底层都是通过NSLayoutConstraint来实现的,因此备份一个UIView的布局扩展代码笔记。UIView扩展UIView+GLLayout.h#import///layout布局typedefenum:NSUInteger{GLLayoutTy
- XIB 修改约束multiplier属性
沬日十七
#pragmamark-修改约束multiplier属性-(void)changeMultiplierOfConstraint:(NSLayoutConstraint*)constraintmultiplier:(CGFloat)multiplier{[NSLayoutConstraintdeactivateConstraints:@[constraint]];NSLayoutConstraint
- [iOS]-Masonry的使用
&Carry
iosui
Masonry介绍Masonry是一个iOS开发布局框架,可以适配各种机型,相比原生的NSLayoutConstraint,提高了使用容易度和代码的可阅读程度。首先需要准备的点:使用Masonry需要配置Cocoapods环境和安装Masonry第三方库参考如下:配置Cocoapods环境:2021年CocoaPods安装方法(这里推荐一位大佬的博客)其中关键的点有:没有rvm的一定要按照给的方法
- swift-xib添加适配(NSLayoutConstraint+IBDesignable)
SmallHer
代码如下,添加之后xib中的约束就会变出一个开关:importUIKitletLayoutSCALE=screenWidth/414extensionNSLayoutConstraint{@IBInspectablevaradapterScreen:Bool{set{ifnewValue{self.constant=self.constant*LayoutSCALE}}get{returntrue
- 使用AutoLayout实践
weimeng809
iOS随笔
在对界面进行布局的时候,我们经常使用AutoLayout对界面进行布局适配。就AutoLayout的布局实现而言,一般我们经常使用的有三种方式:通过苹果强大的可视化界面(InterfaceBuilder),使用AutoLayout完成界面视图的布局。通过纯代码的形式使用AutoLayout,即NSLayoutConstraint。使用第三方界面布局库Masonry进行代码布局。下面结合一个登录界面
- 源码解读——Masonry
baochuquan
原文链接Masonry概述Masonry是基于Apple的自动布局封装的一个轻量级布局框架。Masonry通过一种链式的DSL(Domain-SpecificLanguage)来描述NSLayoutConstraint。相比原生的自动布局语法,Masonry提供了更为简便的语法来构造布局。Masonry同时支持iOS和MacOSX。关于原生的自动布局的详细内容,可以阅读另一篇文章——《系统理解iO
- xib设置约束自适应
苏彧kind
1.适用场景:通常UI原型图是6s机型。做适配的时候可能在不同机型部分控件需要等比缩放。2核心思路:通过运行时给NSLayoutConstraint添加一个属性adapterScreen,控制是否等比缩放。用IBInspectable关键字把adapterScreen插入xib可视化界面。-(void)setAdapterScreen:(BOOL)adapterScreen{objc_setAss
- Masonry学习笔记
mah93
Masonry是一个轻量级的布局框架拥有自己的描述语法采用更优雅的链式语法封装自动布局简洁明了并具有高可读性而且同时支持iOS和MaxOSX。Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。系统AutoLayout支持的操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及。也就是说Mas
- Masonry源码解析
移动端技术
原文链接Masonry是一个基于AutoLayout的轻量级布局框架。主要是对这两个API的封装:-(void)addConstraint:(NSLayoutConstraint*)constraint;-(void)removeConstraint:(NSLayoutConstraint*)constraint;//NSLayoutConstraint方法+(instancetype)const
- Objective-C的Auto Layout(自动布局)学习笔记
寻心_0a46
AutoLayoutAutoLayout即自动布局,在iOS6引入,不同于frame框架式的布局,自动布局根据视图间的相对约束来确定视图位置与大小,使视图得以动态的适应位置与大小的变化,匹配不同尺寸的设备,从而节省大量设置或更新视图位置与大小的代码。自动布局涉及:NSLayoutConstraint(布局约束)、NSLayoutAnchor(布局锚)、UILayoutGuide(布局占位)、Siz
- 代码修改XIB约束比例multiplier属性
梦里桃花舞倾城
multiplier属性是只读的,不可以进行直接修改。stackoverflow给出答案,特意分享出来,给有需要的人。原网站在这里OC写法-(void)p_changeMultiplierOfConstraint:(NSLayoutConstraint*)constraintmultiplier:(CGFloat)multiplier{[NSLayoutConstraintdeactivateCo
- storyboard拖线 改变NSLayoutConstraint.constant 实现动画效果
段公子齐策二
以前用storyboard时候把约束拖出来属性改变约束时候总是实现不了动画效果用frame布局时候用UIView的动画却没问题经过查询资料发现需要用UIView的动画去执行layoutIfNeed以键盘举例代码如下self.viewBottomLayout.constant=frame.size.height;//用layoutIfNeeded方法可以实现动画[UIViewanimateWithD
- UIAlertController's actionSheet Type gives constraint error
Flame_Dream
在使用UIAlertController的preferredStyle=actionSheet过程中出现NSLayoutConstraint错误。一、问题代码如下:letsheet=UIAlertController(title:nil,message:nil,preferredStyle:.actionSheet)//本地图片letcameraAction=UIAlertAction(title
- XIB 根据屏幕比例适配
阿栋先森
比例约束@interfaceNSLayoutConstraint(IBDesignable)@property(nonatomic)IBInspectableBOOLwidthScreen;@end#defineC_WIDTH(WIDTH)WIDTH*[UIScreenmainScreen].bounds.size.width/375.0#import"NSLayoutConstraint+IBD
- LineView Animation
lionnner
importUIKitclassLineView:UIView,XibViewProtocol{@IBOutletvarcontentView:UIView!@IBOutletvarwidthC:NSLayoutConstraint!privatevartimer:DispatchSourceTimer?overrideinit(frame:CGRect){super.init(frame:fra
- AutoLayout 代码添加约束
Dawn_HIN
用NSLayoutConstraint添加View的Constraint1.View的translatesAutoresizingMaskIntoConstraints设置为NO;2.constraint对象的active设置为Yes,默认为NO;3.必须添加View到superView;4.对superView添加constraint。如果对View添加constraint,会报错如下:Term
- iOS开发 xib上的尺寸和字体适配解决方案
一个福建人
有时候不想用纯代码写页面,用xib拖控件,需要考虑在不同设备上的尺寸和字体适配,比如设计图在iPhone8上控件宽度100,那么在plus机型上如果也是100那就不好看了,因此可以用比例换算w=(screenW/375)*100来得到适配好的尺寸,这个方式用纯代码开发没问题,如何应用在xib上呢?尺寸实配方案:通过category给NSLayoutConstraint对象添加属性xibSizeFi
- 动态修改使用xib创建的view的 高度/宽度 frame
莫林是个好孩子
先把xib的size设置为freedom,然后只需要set相关的NSLayoutConstraint就可以了,如图:
- UIStackView使用介绍
Sweet丶
在iOS开发中,对于控件布局我们一般是使用AutoLayout加约束的机制实现,UIKit有一个布局组件UIStackView,它与Flutter中的Column和Row有点类似,我们可以使用这个控件实现横向或纵向上子视图的布局,好处是它本身不参与渲染,坏处是相对UIView有学习理解成本。一、如何使用?首先来了解几个重要的属性:-openvaraxis:NSLayoutConstraint.Ax
- 【iOS】navigationItem.titleView不居中的解决办法
当我们对导航栏的标题的视图进行设置的时候,如果titleView的尺寸太大,由于两侧的rightBarButtonItem和leftBarButtonItem的挤压,会导致titleView不居中。网上找了许多方法,都是用到计算的尺寸实现的,太过繁琐。最后终于找到一个解决的办法。使用NSLayoutConstraint对titleView进行设置其尺寸即可解决问题。原代码:UIView*title
- 使用xib或storyboard等比适配屏幕尺寸(按设置的宏定义比例适配)
心猿意码_
本文章适用于使用xib或者storyboard开发过程中,控件根据自己的宏定义的比例处理控件尺寸等比,话不多说,先看效果,再上代码。这里既是效果也是使用方法(先选中约束的线条,然后打开自定义的又上角开关)Mar-28-202210-52-29.gif首先创建一个NSLayoutConstraint+BSIBDesignable.h的分类#importNS_ASSUME_NONNULL_BEGIN@
- 创建一个UICollectionView
差不多先生__
从工作到现在写过N个CollectionView,但是之前从没有记录下来,今天记录一个collectionview,之后工作中每次用到都会将之前没有记录过的添加进来。准备:因为我使用的是Masonry创建约束,没有使用CGRect,即没有使用坐标系的frame,但是你可以使用CGRect坐标系或者自己创建NSLayoutConstraint约束,另在这里附上Masonry的下载地址,来自GitHu
- Masonry修改约束冲突 MASLayoutConstraint,NSLayoutConstraint
十年祤茉
在xib上已经约束好的控件,在某些条件下需要修改frame,通过masonry修改后,虽然可以运行,但是aotolayout约束和masonry约束冲突masonry修改约束后冲突解决方法:修改约束的优先等级修改冲突控件的约束等级当把冲突控件的约束的优先等级都设置为High时,此时就不会打印出冲突了
- NSLayoutConstraint (原生自动布局)
policx
![2.png](http://upload-images.jianshu.io/upload_images/870787-edc0bdc70c314335.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)如果一个界面创建三个View,要求第一行两个View等高等宽,第三个View与上面两个View等高,无论是横屏还是竖屏。那该如何编写
- Enum 枚举
120153216
enum枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
- Java8简明教程
bijian1013
javajdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
- Oracle表维护 快速备份删除数据
cuisuqiang
oracle索引快速备份删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
- java多态内存分析
麦田的设计者
java内存分析多态原理接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
- Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
- 类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
- html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
- google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
- webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
- 菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
- 通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
- spring拦截器的一个简单实例
bijian1013
javaspring拦截器Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
- [Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
- 【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
- nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
- java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
- Netty学习笔记
bylijinnan
javanetty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
- js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
- oracle 的性能优化
cuishikuan
oracleSQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
- Shell变量和数组使用详解
daizj
linuxshell变量数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
- 编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
- [Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
- solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
- Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
- js实现登录时记住用户名
hw1287789687
记住我记住密码cookie记住用户名记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
- 开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
- 算法机试题
李亚飞
java算法机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
- 正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
- hibernate调用返回游标的存储过程
Supanccy2013
javaDAOoracleHibernatejdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
- Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p