首页 > 代码库 > 仿网易彩票代码实现
仿网易彩票代码实现
仿网易彩票代码实现
一.设置全部导航条的背景
//取出全部导航条UINavigationBar*bar = [UINavigationBarappearance];
//设置全部导航条的背景图片
[bar setBackgroundImage:[UIImage imageName: @"navigationbar_background.png"] forBarMetrics:UIBarMetricsDefault];
//导航栏上有一层BackgroundImageView,不能直接设置背景颜色,设置背景颜色是无效的
// bar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"navigationbar_background.png"]];
//设置所有导航条字体的颜色
NSDictionary*dict = @{NSFontAttributeName: [UIFontsystemFontOfSize:15.0],NSForegroundColorAttributeName:[UIColorwhiteColor]};
[bar setTitleTextAttributes:dict];
NSDictionary*dict = @{NSFontAttributeName: [UIFontsystemFontOfSize:15.0],NSForegroundColorAttributeName:[UIColorwhiteColor]};
[bar setTitleTextAttributes:dict];
//设置主题颜色
[bar setTintColor:[UIColorwhiteColor]];
[bar setTintColor:[UIColorwhiteColor]];
二、解决IOS6和IOS7兼容性问题
程序启动的时候,隐藏状态栏,ios6需要恢复状态栏显示
设置状态栏颜色 ios7默认状态栏交给控制器管理,修改info.plist文件,让状态栏交给application管理
设置状态栏颜色 ios7默认状态栏交给控制器管理,修改info.plist文件,让状态栏交给application管理
application.statusBarHidden= NO;
application.statusBarStyle= UIStatusBarStyleLightContent;
application.statusBarStyle= UIStatusBarStyleLightContent;
三、自定义button,设置button的标题和图片的位置
//设置按钮标题的位置
- (CGRect)titleRectForContentRect:(CGRect)contentRect;
- (CGRect)titleRectForContentRect:(CGRect)contentRect;
//设置按钮图片的位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
- (CGRect)imageRectForContentRect:(CGRect)contentRect;
// 获取当前文字尺寸,计算内部Label的尺寸
NSDictionary*dict = @{NSFontAttributeName: [UIFontsystemFontOfSize:15.0]};
titleW = [self.currentTitleboundingRectWithSize:CGSizeMake(MAXFLOAT,MAXFLOAT)options:NSStringDrawingTruncatesLastVisibleLineattributes:dictcontext:nil].size.width;
注意:IOS6和IOS7有兼容性问题
boundingRectWithSize在ios7才有,ios6没有这个方法。
IOS6需要用这个方法,获取当前文字的尺寸,计算内部Label的尺寸。
titleW = [self.currentTitlesizeWithFont:[UIFontsystemFontOfSize:15.0]].width;
四、button 和image在stroyboard的拉伸
注意:
通过storyboard只能拉伸UIImageView,而button在storyboard不能拉伸,只能用代码实现。
storyboard中 x:表示左边多少不拉伸 y:表示上边多少不拉伸 w:表示宽度拉伸多少个像素 h:表示高度拉伸多少个像素 x:0.5(左边一半不拉伸) y:0.5(顶部一半不拉伸) w:0 (宽度拉伸一个像素) h:0(高度拉伸一个像素)。
//拉伸按钮
UIImage*image = [UIImageimageNamed:@"NavButton"];UIImage*imageH = [UIImageimageNamed:@"NavButtonPressed"];
image = [image stretchableImageWithLeftCapWidth:image.size.width* 0.5 topCapHeight:image.size.height* 0.5];
imageH = [imageH stretchableImageWithLeftCapWidth:imageH.size.width* 0.5 topCapHeight:imageH.size.height* 0.5];
[_loginBtnsetBackgroundImage:imageforState:UIControlStateNormal];
[_loginBtnsetBackgroundImage:imageHforState:UIControlStateHighlighted];
五、UICollectionViewController
UICollectionViewController默认有一个UICollectionView,但是self.collectionView != self.view
UITableViewController默认有一个UITableView,并且self.tableview == self.view
UICollectionViewCell是不能通过代码来创建的,forIndexPath意味着去stroyboard中创建。
UICollectionViewCell *cell = [collectionViewdequeueReusableCellWithReuseIdentifier:IDforIndexPath:indexPath];
UICollectionViewCell*cell = [[UICollectionViewCell alloc] init];
UICollectionViewCell首先会从缓存池中根据Identifier查找,如果缓存池中没有,才会手动创建,但是手动创建init方法没有提供标识符的构造方法,在做系统优化的时候,就不能根据Identifier准确的查找出,会引起表格的重用。
// 1.注册cell(告诉collectionView将来创建怎样的cell),利用xib创建
UINib*nib = [UINibnibWithNibName:@"SUNProductCell"bundle:nil];
[self.collectionViewregisterNib:nibforCellWithReuseIdentifier:ID];
UINib*nib = [UINibnibWithNibName:@"SUNProductCell"bundle:nil];
[self.collectionViewregisterNib:nibforCellWithReuseIdentifier:ID];
// 2.注册UICollectionViewCell ,如果缓存池中没有,就会自动创建
[self.collectionViewregisterClass:[UICollectionViewCellclass]forCellWithReuseIdentifier:ID];
注意:在使用UICollectionViewCell 必须传入布局。
// 1.流水布局
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayoutalloc]init];
// 2.每个cell的frame
layout.itemSize= CGSizeMake(80,80);
// 3.设置cell之间的水平间距
layout.minimumInteritemSpacing= 0;
// 4.设置cell之间的垂直间距
layout.minimumLineSpacing= 10;
// 5.设置四周的内边距
layout.sectionInset= UIEdgeInsetsMake(layout.minimumLineSpacing,0,0,0);
return [superinitWithCollectionViewLayout:layout];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayoutalloc]init];
// 2.每个cell的frame
layout.itemSize= CGSizeMake(80,80);
// 3.设置cell之间的水平间距
layout.minimumInteritemSpacing= 0;
// 4.设置cell之间的垂直间距
layout.minimumLineSpacing= 10;
// 5.设置四周的内边距
layout.sectionInset= UIEdgeInsetsMake(layout.minimumLineSpacing,0,0,0);
return [superinitWithCollectionViewLayout:layout];
使用UICollectionView
第一步:必须有布局第二部:cell必须自己注册
六、解析JSON数据
NSString*fileName = [[NSBundlemainBundle]pathForResource:@"products.json"ofType:nil];
NSData*data =http://www.mamicode.com/ [NSDatadataWithContentsOfFile:fileName];
NSArray*jsonArr = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSData*data =http://www.mamicode.com/ [NSDatadataWithContentsOfFile:fileName];
NSArray*jsonArr = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
七、UIWebView
// 加载资源包中的html
NSURL*url = [[NSBundlemainBundle]URLForResource:_helpItem.htmlwithExtension:nil];
NSURLRequest*request = [NSURLRequestrequestWithURL:url];
[webView loadRequest:request];
NSURLRequest*request = [NSURLRequestrequestWithURL:url];
[webView loadRequest:request];
//加载完网页调用
- (void)webViewDidFinishLoad:(UIWebView*)webView
{
NSString *str = [NSStringstringWithFormat:@"window.location.href = http://www.mamicode.com/‘#%@‘;",_helpItem.ID];
[webView stringByEvaluatingJavaScriptFromString:str];
}
- (void)webViewDidFinishLoad:(UIWebView*)webView
{
NSString *str = [NSStringstringWithFormat:@"window.location.href = http://www.mamicode.com/‘#%@‘;",_helpItem.ID];
[webView stringByEvaluatingJavaScriptFromString:str];
}
仿网易彩票代码实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。