iOS开发经验之工作小知识记录

1. initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸)。

2. UIImageView 的contentMode属性

UIViewContentModeScaleToFill 

UIViewContentModeScaleAspectFit 

UIViewContentModeScaleAspectFill 

UIViewContentModeRedraw 

UIViewContentModeCenter 

UIViewContentModeTop 

UIViewContentModeBottom 

UIViewContentModeLeft 

UIViewContentModeRight 

UIViewContentModeTopLeft 

UIViewContentModeTopRight 

UIViewContentModeBottomLeft 

UIViewContentModeBottomRight 

注意以上几个常量,凡是没有带Scale的,当图片尺寸超过 
ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。


3.实现图片循环无限播放的小思想

首先我们来讲讲思想:假如我们有1000张图片将要展现给用户,一个ImageView展示一个(大小为iphone5屏幕大小)那么1000张图片如果同时加载在imageView并且都添加在ScrollView中,只要图片稍微大点,那么系统肯定崩溃。

而我们这个时候只需要一个数组存储所有图片的名称,一个数组来存储3个图片即可,定义UIScrollView的contentSize等于3倍屏幕大小即可,然后加载数组中的3个图片, 实现当用户看到图片时,已经加载好左视图,右视图,以及用户现在看到的视图,当用户切换下一张图片或者上一张图片的时候我们对3张图片进行重新加载,并且让UIScrollView的contentOffset还原到中间的视图位置。

做好上述准备,那么我们目前已经实现了动态的加载图片来节省内存,那么至于今天的主题循环播放呢,我们可以用一个属性来记录当前所在的页数,而在scrollerDidScroll这个方法中进行判断用户是向左还是向右,来加或者减当前页面所在的页数来达到我们所要的效果,不多说,现在贴上代码,大家可以一起讨论,分享。

4. egoImageView 是网络大神的一个超好类库 可是 很多人都用 SdWebimage   这个东西用的人却不多。 

其实个人感觉 这个类库还是蛮好用的 


简单说下自己的使用心得 


首先加载一个网络图片 

    EGOImageView *imageView = [[[EGOImageViewalloc]initWithFrame:CGRectMake(kBaseViewOriginX,kBaseViewOriginY,kBaseVieWidth,kBaseViewHeight) ] autorelease];

    imageView.imageURL = [NSURLURLWithString:@"http://imgsrc.baidu.com/forum/pic/item/9d82d158ccbf6c811c42177ebc3eb13533fa402a.jpg"];

    [self.viewaddSubview:imageView];

    

这样就可以了  


//清理缓存~ 


    [[EGOCachecurrentCache] clearCache];


//获得 下载好的图片 


    UIImage *getImage = [[EGOImageLoadersharedImageLoader]imageForURL:[NSURLURLWithString:@"http://imgsrc.baidu.com/forum/pic/item/9d82d158ccbf6c811c42177ebc3eb13533fa402a.jpg"]shouldLoadWithObserver:nil];


正则表达式:

^(-)?(([1-9]\\d*)|0)(\\.(\\d){0,2})?$

^文本开头

$文本结束

[1-9]匹配数字1到9之间任意一个

\\表转义,实际应为\

\d匹配数字,也即[0-9]

\. 这个表示匹配小数点


1.关于tableViewcell选中问题总结

//选中cell时的颜色
typedef enum {
    UITableViewCellSelectionStyleNone,
    UITableViewCellSelectionStyleBlue,
    UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle 
//cell右边按钮格式
typedef enum {
    UITableViewCellAccessoryNone,                   // don't show any accessory view
    UITableViewCellAccessoryDisclosureIndicator,    // regular chevron. doesn't track
    UITableViewCellAccessoryDetailDisclosureButton, // blue button w/ chevron. tracks
    UITableViewCellAccessoryCheckmark               // checkmark. doesn't track
} UITableViewCellAccessoryType
//是否加换行线
typedef enum {
    UITableViewCellSeparatorStyleNone,
    UITableViewCellSeparatorStyleSingleLine
} UITableViewCellSeparatorStyle//改变换行线颜色
tableView.separatorColor = [UIColor blueColor];



2.截取字符串显示:

[str1 substringWithRange:NSMakeRange(6,2)]就是排除前面6个,取出来2个字符串显示。



3.UILabel中显示的数字:有两位小数

cardMoney.text = [NSStringstringWithFormat:@"%.2f",[str3intValue]*0.01];

因为text是显示的字符串,然后这样设置就可以弄成2位小数了。str3是取出来的值。



4.求字符串长度:

[searchText length] 


5.判断字符串内容相同

a isEqualToString:@"0"

6.设置数组

[NSArray arrayWithObjects:@“Steve”, @“Ankush”, @“Sean”, nil];

7.iOS上如何让按钮文本左对齐问题

button.titleLabel.textAlignment = NSTextAlignmentLeft; 这行代码是没有效果的,这只是让标签中的文本左对齐,但

并没有改变标签在按钮中的对齐方式。


所以,我们首先要使用

button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; 这行代码,把按钮的内容(控件)

的对齐方式修改为水平左对齐,但是这们会紧紧靠着左边,不好看,

所以我们还可以修改属性:

button.titleEdgeInsets = UIEdgeInsetsMake(01000);

这行代码可以让按钮的内容(控件)距离左边10个像素,这样就好看多了


8,int和NSInteger区别

c语言中,int和long的字节数是和操作系统指针所占位数相等。long的长度永远大于或等于int

在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。
NSInteger与int的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值