UI笔记

一个视图可以有多个子视图, 但是一个子视图只能有一个父视图, 同为子视图, 后添加的会显示在上方.

setHidden视图隐藏属性, 默认值是NO, 隐藏父视图, 子视图会受到影响.

clipsToBounds, 裁掉子视图超过父视图的部分.

bounds, 是相对自己的坐标系, 修改视图的bounds自身不会发生变化, 但是会影响到子视图的变化.

frame是参考父视图的坐标系, 修改视图的frame, 会影响到父视图坐标的位置.

superview获得视图的父视图, subviews获得视图所有的子视图.

removeFromSuperview把视图从父视图移除.

NslineBreakByWordWrapping 换行模式, 默认是以单词换行.

CGSizeMake阴影偏移量

//将要旋转到什么方向

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

{

UIView * view = [self.view viewWithTag:101];

//如果屏幕是横屏,让视图调整大小

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {

view.frame = CGRectMake(20, 50, 440, 100);

}

else{

//否则视图还是原来的大小

view.frame = CGRectMake(20, 50, 280, 100);

}

NSLog(@"%s %d", __FUNCTION__, __LINE__);

}

//已经从哪个方向旋转过来

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

{

NSLog(@"%s %d", __FUNCTION__, __LINE__);

}

longp.view.transform = CGAffineTransformRotate(longp.view.transform, M_PI / 2);//让视图旋转90°.

CGPoint newCenter = [pp translationInView:pp.view];

pp.view.transform = CGAffineTransformTranslate(pp.view.transform, newCenter.x, newCenter.y);

[pp setTranslation:CGPointZero inView:pp.view];拖拽视图

ro.view.transform = CGAffineTransformRotate(ro.view.transform, ro.rotation);

ro.rotation = 0.0;//旋转视图

多态就是屏蔽子类差异话的部分, 让代码更加通用

slider.continuous = YES;//保持动作

UIImage * aImage = [UIImage imageNamed:@"1.png"];//这样创建的是同一个对象, 在内存里加载一次, 使用效率高, 但是会导致内存泄露, 无法及时释放,程序结束时才释放

NSString * path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"];

UIImage * image = [UIImage imageWithContentsOfFile:path];//解决方案用这样的方法创建, 根据包中图片路径创建UIImage, 是便利构造器, 能够及时释放, 创建的是不同的对象

语法糖

NSMutableArray * array = @[@"aaa", @"bbb", @"ccc"]; //这样出来的时候是不可变数组

NSMutableArray * array1 = [@[@"aaa", @"bbb", @"ccc"] mutableCopy];//这样出来的数组才是可变数组

NSNumber * num = [NSNumber numberWithFloat:5.8];

NSNumber * num1 = @5.8; //上下等价

NSArray * array3 = @[@"zhangsan", @5.8, @YES];

NSMutableDictionary * dic = @{@"name": @"zhangsan", @"sex":@"boy", @"age":@18};//这样创建的字典也是不可变的, 如果想转成可变的话就要用到mutablecopy

NSLog(@"%@", dic);

NSString * name = [dic objectForKey:@"name"];

NSString * name1 = dic[@"name"];//上下等价

NSLog(@"%@", name1);

[temView startAnimating];//当动画变的时候会停止播放, 改变之后要重新播放动画

//scorllView.contentOffset = CGPointMake(50, 50);//内容视图相对原点视图SCROLLVIEW的偏移量,在滚动过程中,这个属性会不停的发生变化   比较重要

//scorllView.scrollEnabled = NO;

//scorllView.contentInset = UIEdgeInsetsMake(200, 20, 10, 20);//相对scrollView上左下右决定从哪开始显示这个区域

//scorllView.directionalLockEnabled = YES;//在滚动的时候锁定方向, 即在滚动的时候只能沿着一个方向滚动

//scorllView.scrollsToTop = YES;//点击状态栏的时候返回顶部, 默认值是YES

//scorllView.bounces = YES;//弹跳效果, 到边界的时候会有弹跳效果, 默认是开启的

//scorllView.pagingEnabled = YES;//翻页效果

//scorllView.indicatorStyle = UIScrollViewIndicatorStyleDefault;//控制器的颜色

//scorllView.showsHorizontalScrollIndicator = NO;//不显示水平方向上的滚动条

//scorllView.showsVerticalScrollIndicator = NO;//不显示垂直方向上的滚动条

UI笔记

时间: 2024-08-29 23:44:19

UI笔记的相关文章

net MVC +Vue.js+Element UI 笔记

最近项目需求要用到Vue 与 Element UI.但是又不想用Node.js.就结合了Net.MVC来做项目开发.故而做个笔记来记录一些遇到的问题和处理思路 用到MVC主要考虑是到 对 Node.js 不是特别了解.不想给自己埋坑. 而且基于MVC的话,能用到MVC的服务器端渲染,Session,验证,路由机制等等还是非常和嗨皮的. 然而集合MVC的话,比较烦的是在做可复用Component和JS文件的封装上没Node.js那么方便. Note:不得不吐槽,Vue.js简直和Flash Fle

iOS -- UI笔记(第一天)

UI: User Interface 用户界面常用框架: UIKit - 创建和管理应用程序的用户界面               QuartzCore - 提供动画特效以及通过硬件进行渲染的能力               CoreGraphics - 提供2D绘制的基于C的API               CoreLocation - 使用GPS和WIFI获取位置信息               MapKit - 为应用程序提供内嵌地图的接口               AVFoundat

jquery ui 笔记

准备: 1.下载jquery ui库:http://jqueryui.com/download/ 2.选择theme 3.建立一个良好的发展环境(mysql.netbeans) 4.创建数据库:jqueryui_db 一.jquery ui 1.autocomplete 1.1.描写叙述:是jQuery UI的自己主动完毕组件. 1.2.支持的数据源:主要支持字符串Array.JSON两种数据格式. 1.2.1.对于JSON格式的Array,则要求有:label.value属性. 1.2.2.当

kendo ui 笔记

demo http://demos.telerik.com/kendo-ui/ 帮助文档 http://docs.telerik.com/kendo-ui/api/javascript/ui/alert 使用札记 引用 http://www.cnblogs.com/juhualang/p/3760992.html

UI笔记2

/** *  用户名 */ @property(strong,nonatomic) UITextField *txtName; @property(strong,nonatomic)  UITextView *txtView; #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoa

amaze UI 笔记 - CSS

一.基本样式 1.统一样式 说明了为什么使用Normalize,而不是Rest. 2.基础设置 a.css和模型 其实就是讲了一个CSS3的新属性:box-sizing.作为一个技术不到位的人,真没看懂.自己查了下如下: box-sizing的3种属性取一即可 box-sizing:content-box | padding-box | border-box box-sizing:content-box;   宽度里面只包含内容 box-sizing:padding-box;  宽度里面不包含p

avalon学习笔记ui篇-如何将avalon默认的amd模型禁止,以及用require重写。

一.如何禁止avalon自带的amd模型 1.采用avalon.shim.js这个文件,这个文件删除了原本自带的amd模型,不需要手动删除,修改. 2.打开avalon.js这个文件,搜索avalon.config,将true改为false. 二,下载text.js和css.js 1.因为avalonUI依赖了html文件和css文件. 2.并且将text.js和css.js,在配置中预加载 priority:['text','css'] 三.完整配置项 require.config({ //b

Android:日常学习笔记(8)———探究UI开发(5)

Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView的简单用法 public class MainActivity extends AppCompatActivity { private String[] data={"Apple","Banana","Orange","Watermelon","Pear","Grape","

avalon学习笔记ui篇-datepicker篇

一.介绍 首先avalon是我接触的第一个mvvm框架,angularjs也能实现基本同样的功能,但是老外的产物都是比较先进的,他们早已放弃在IE下摸爬滚打,作为大天朝的我们,还是必须要矜矜业业的伺候着IE6,这就是我为什么选择avalon,没用angularjs的原因.官方文档都是老写法,这让我忍不住深深的吐槽正美,好吧,维护一个框架是艰难的,正美加油吧. 二.日历插件篇datepicker 官方文档的参数: <!DOCTYPE HTML> <html> <head>