美文网首页ios
UI基础的简单控制

UI基础的简单控制

作者: iOS_Cqlee | 来源:发表于2015-09-26 15:10 被阅读65次

contentMode属性

带有scale单词的:图片有可能会拉伸

UIViewContentModeScaleToFill

将图片拉伸至填充整个imageView

图片显示的尺寸跟imageView的尺寸是一样的

带有aspect单词的:保持图片原来的宽高比

UIViewContentModeScaleAspectFit

保证刚好能看到图片的全部

UIViewContentModeScaleAspectFill

拉伸至图片的宽度或者高度跟imageView一样

没有scale单词的:图片绝对不会被拉伸,保持图片的原尺寸

UIViewContentModeCenter

UIViewContentModeTop

UIViewContentModeBottom

UIViewContentModeLeft

UIViewContentModeRight

UIViewContentModeTopLeft

UIViewContentModeTopRight

UIViewContentModeBottomLeft

UIViewContentModeBottomRight

小语法点

不能直接修改:OC对象的结构体属性的成员

下面的写法是错误的

imageView.frame.size= imageView.image.size;

正确写法

//在OC中对象结构体成员的修改,可以创建一个临时的结构体来取值CGRecttempFrame = imageView.frame;tempFrame.size= imageView.image.size;imageView.frame= tempFrame;

initWithImage:方法

利用这个方法创建出来的imageView的尺寸和传入的图片尺寸一样

修改frame的3种方式

直接使用CGRectMake函数

imageView.frame=CGRectMake(100,100,200,200);

利用临时结构体变量

CGRecttempFrame = imageView.frame;tempFrame.origin.x=100;tempFrame.origin.y=100;tempFrame.size.width=200;tempFrame.size.height=200;imageView.frame= tempFrame;

使用大括号{}形式

imageView.frame= (CGRect){{100,100}, {200,200}};

抽取重复代码

将相同代码放到一个新的方法中

不用的东西就变成方法的参数

图片的加载方式

有缓存

UIImage*image = [UIImageimageNamed:@"图片名"];

使用场合:图片比较小、使用频率较高

建议把需要缓存的图片直接放到Images.xcassets

无缓存

NSString*file = [[NSBundlemainBundle] pathForResource:@"图片名"ofType:@"图片的扩展名"];UIImage*image = [UIImageimageWithContentsOfFile:@"图片文件的全路径"];

使用场合:图片比较大、使用频率较小

不需要缓存的图片不能放在Images.xcassets

放在Images.xcassets里面的图片,只能通过图片名去加载图片

延迟做一些事情

[abc performSelector:@selector(stand:) withObject:@"123"afterDelay:10];// 10s后自动调用abc的stand:方法,并且传递@"123"参数

音频文件的简单播放

// 创建一个音频文件的URL(URL就是文件路径对象)NSURL*url = [[NSBundlemainBundle] URLForResource:@"音频文件名"withExtension:@"音频文件的扩展名"];// 创建播放器self.player= [AVPlayerplayerWithURL:url];// 播放[self.playerplay];


UIImageView的常见属性

@property(nonatomic,retain)UIImage*image;显示的图片@property(nonatomic,copy)NSArray*animationImages;显示的动画图片@property(nonatomic)NSTimeIntervalanimationDuration;动画图片的持续时间@property(nonatomic)NSIntegeranimationRepeatCount;动画的播放次数(默认是0,代表无限播放)

UIImageView的常见方法

-(void)startAnimating//开始动画

-(void)stopAnimating;//停止动画

-(BOOL)isAnimating;//是否正在执行动画

UIImage

一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片

例子

UIImage*image = [UIImageimageNamed:@"lufy"];

UILabel

设置显示多少行,要想显示所有的行数,设置为0

label.numberOfLines =2;

@property(nonatomic,copy)NSString*text;显示的文字@property(nonatomic,retain)UIFont*font;字体@property(nonatomic,retain)UIColor*textColor;文字颜色@property(nonatomic)NSTextAlignmenttextAlignment;对齐模式(比如左对齐、居中对齐、右对齐)@property(nonatomic)NSIntegernumberOfLines;文字行数@property(nonatomic)NSLineBreakModelineBreakMode;换行模式

UIFront

UIFont代表字体,常见创建方法有以下几个:

1系统默认字体 + (UIFont *)systemFontOfSize:(CGFloat)fontSize;

2粗体 + (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;

3斜体 + (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;

可以不用记,当需要时,要学会自学,跳到头文件中,查看就可以,不懂的可以自己动手测试出来


UIButton

UIbutton的状态

normal(普通状态)

默认情况(Default)

对应的枚举常量:UIControlStateNormal

highlighted(高亮状态)

按钮被按下去的时候(手指还未松开)

对应的枚举常量:UIControlStateHighlighted

disabled(失效状态,不可用状态)

如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击

对应的枚举常量:UIControlStateDisabled

设置按钮在不同状态的背景图片

按钮的样式

UIButton的常见设置

- (void)setTitle:(NSString *)titleforState:(UIControlState)state;设置按钮的文字

- (void)setTitleColor:(UIColor *)colorforState:(UIControlState)state;设置按钮的文字颜色

- (void)setImage:(UIImage *)imageforState:(UIControlState)state;设置按钮内部的小图片

- (void)setBackgroundImage:(UIImage *)imageforState:(UIControlState)state;设置按钮的背景图片

btn.titleLabel.font = [UIFont systemFontOfSize:13];设置按钮的文字字体(需要拿到按钮内部的label来设置)

- (NSString *)titleForState:(UIControlState)state;获得按钮的文字

- (UIColor *)titleColorForState:(UIControlState)state;获得按钮的文字颜色

- (UIImage *)imageForState:(UIControlState)state;获得按钮内部的小图片

- (UIImage *)backgroundImageForState:(UIControlState)state;获得按钮的背景图片

choose for the UIImageView and UILabel and UIButton

UIButton、UIImageView、UILabel的选择

仅仅是显示数据,不需要点击

建议选择UIImageView、UILabel

不仅显示数据,还需要监听点击

建议选择UIButton

其实UIImageView、UILabel也可以通过手势识别器来监听

长按控件后,会改变显示的内容

不用考虑了,选择UIButton(因为UIButton有highlighted这种状态)

同时显示2张图片:背景图片、内容图片

不用考虑了,选择UIButton

相关文章

  • UI基础的简单控制

    contentMode属性 带有scale单词的:图片有可能会拉伸 UIViewContentModeScaleT...

  • UI基础控制篇

    UI基础控件篇 创建window 1.删除Main 2.ARC->MRC(自动改手动) 3.删除(ViewCont...

  • 5.2 GestureRecognizer---UI手势

    GestureRecognizer---UI手势 基础控制器 导航栏视图控制器, 根试图控制器 单击手势 双击手势...

  • autojs清空日志

    牙叔教程 简单易懂 autojs日志类型 悬浮窗控制台的临时日志 UI中的console标签的控制台 UI中的gl...

  • 简单的UI基础细节

    1.IBOutlet:保证属性能够连线 2.IBAction:保证方法能够连线,且返回值是void; ------...

  • 为什么我们要使用DTO

    基础结构解释 UI-表现层-与控制器打交道(UI向Controller 传递数据时使用DTO(数据传输对象)) S...

  • 零基础学UI设计需要美术基础吗?

    零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需...

  • 无标题文章

    IOS 开发笔记-基础 UI(1)-简单的计算器 姜糖水2015-02-26636阅读 移动开发 (1)UI是Ap...

  • UI界面控制Demo

    控制UI界面的几种方法 使用XML布局文件控制UI界面 在java代码中控制UI界面 使用XML和Java代码混合...

  • UI设计零基础如何自学,关于培训班该如何选择?

    UI设计零基础如何自学,关于培训班该如何选择?UI设计零基础如何自学UI设计零基础如何自学UI设计零基础如何自学U...

网友评论

    本文标题:UI基础的简单控制

    本文链接:https://www.haomeiwen.com/subject/blrwcttx.html