仿网易彩票代码实现

仿网易彩票代码实现

一.设置全部导航条的背景

//
取出全部导航条

UINavigationBar
*bar = [UINavigationBar
appearance];

//
设置全部导航条的背景图片

[bar setBackgroundImage:[UIImage imageName:
@"navigationbar_background.png"] forBarMetrics:UIBarMetricsDefault];

//
导航栏上有一层BackgroundImageView,不能直接设置背景颜色,设置背景颜色是无效的

//  bar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"navigationbar_background.png"]];

//
设置所有导航条字体的颜色

NSDictionary
*dict =
@{NSFontAttributeName: [UIFont
systemFontOfSize:15.0],NSForegroundColorAttributeName:[UIColor
whiteColor]};

[bar setTitleTextAttributes:dict];

//
设置主题颜色

[bar setTintColor:[UIColor
whiteColor]];

二、解决IOS6和IOS7兼容性问题

程序启动的时候,隐藏状态栏,ios6需要恢复状态栏显示

设置状态栏颜色 ios7默认状态栏交给控制器管理,修改info.plist文件,让状态栏交给application管理

application.statusBarHidden
=
NO;

application.statusBarStyle
=
UIStatusBarStyleLightContent;

三、自定义button,设置button的标题和图片的位置

//
设置按钮标题的位置

- (CGRect)titleRectForContentRect:(CGRect)contentRect;

//
设置按钮图片的位置

- (CGRect)imageRectForContentRect:(CGRect)contentRect;

// 获取当前文字尺寸,计算内部Label的尺寸

NSDictionary
*dict =
@{NSFontAttributeName: [UIFont
systemFontOfSize:15.0]};

titleW =
[self.currentTitle
boundingRectWithSize:CGSizeMake(MAXFLOAT,
MAXFLOAT)
options:NSStringDrawingTruncatesLastVisibleLine
attributes:dict
context:nil].size.width;

注意:IOS6和IOS7有兼容性问题

boundingRectWithSize在ios7才有,ios6没有这个方法。

IOS6需要用这个方法,获取当前文字的尺寸,计算内部Label的尺寸。

titleW = [self.currentTitle
sizeWithFont:[UIFont
systemFontOfSize: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 = [UIImage
imageNamed:@"NavButton"];

UIImage
*imageH = [UIImage
imageNamed:@"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];

[_loginBtn
setBackgroundImage:image
forState:UIControlStateNormal];

[_loginBtn
setBackgroundImage:imageH
forState:UIControlStateHighlighted];

五、UICollectionViewController

UICollectionViewController默认有一个UICollectionView,但是self.collectionView
!= self.view

UITableViewController默认有一个UITableView,并且self.tableview
== self.view

UICollectionViewCell是不能通过代码来创建的,forIndexPath意味着去stroyboard中创建。

UICollectionViewCell *cell = [collectionView
dequeueReusableCellWithReuseIdentifier:ID
forIndexPath:indexPath];

UICollectionViewCell
*cell = [[UICollectionViewCell alloc] init];

UICollectionViewCell首先会从缓存池中根据Identifier查找,如果缓存池中没有,才会手动创建,但是手动创建init方法没有提供标识符的构造方法,在做系统优化的时候,就不能根据Identifier准确的查找出,会引起表格的重用。

// 1.注册cell(告诉collectionView将来创建怎样的cell),利用xib创建

UINib
*nib = [UINib
nibWithNibName:@"SUNProductCell"
bundle:nil];

[self.collectionView
registerNib:nib
forCellWithReuseIdentifier:ID];

// 2.注册UICollectionViewCell ,如果缓存池中没有,就会自动创建

[self.collectionView
registerClass:[UICollectionViewCell
class]
forCellWithReuseIdentifier:ID];

注意:在使用UICollectionViewCell 必须传入布局。

// 1.流水布局

UICollectionViewFlowLayout
*layout = [[UICollectionViewFlowLayout
alloc]
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 [super
initWithCollectionViewLayout:layout];

使用UICollectionView

第一步:必须有布局

第二部:cell必须自己注册

六、解析JSON数据

NSString
*fileName = [[NSBundle
mainBundle]
pathForResource:@"products.json"
ofType:nil];

NSData
*data =  [NSData
dataWithContentsOfFile:fileName];

NSArray
*jsonArr =  [NSJSONSerialization
JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:nil];

七、UIWebView

// 加载资源包中的html

NSURL
*url = [[NSBundle
mainBundle]
URLForResource:_helpItem.html
withExtension:nil];

NSURLRequest
*request = [NSURLRequest
requestWithURL:url];

[webView
loadRequest:request];

//
加载完网页调用

- (void)webViewDidFinishLoad:(UIWebView
*)webView

{

NSString *str = [NSString
stringWithFormat:@"window.location.href
= ‘#%@‘;",_helpItem.ID];

[webView
stringByEvaluatingJavaScriptFromString:str];

}

时间: 2024-10-16 23:00:58

仿网易彩票代码实现的相关文章

仿网易彩票思路

仿网易彩票思路 第一步. 项目的配置 1> 新建项目:项目前缀:把项目名称里面的大写抽出来. 2> 支持项目部署,支持ios6,ios7 3> 不支持横竖屏 4> 导入图标和启动图片 5> 程序启动的时候,隐藏状态栏,ios6需要恢复状态栏显示 6> 设置状态栏颜色 ios7默认状态栏交给控制器管理,修改info.plist文件,让状态栏交给application管理 6> 项目文件夹按模块划分,Main:(主框架,自定义tab控制器),Other:存放其他头文件

iOS项目开发之仿网易彩票推荐应用

简介 效果展示 思路分析 代码实现 Git地址 一.简介 某些公司有较多的产品时,通常会在一个产品中推广另外的一些产品,我简单的封装了一个UIControllerView,由于不同公司,要求不同.所以大家可以根据自己不同的需求来改里面的内容,希望对大家有用. 我这里解压网易的资源文件,获取到的数据.(如有任何问题,联系本人[email protected]) 二.效果展示 因为我的截图都是使用的模拟器,所以后面都显示的下载图标.如果用真机会根据用户是否下载了对应的应用来判断显示什么样的图片,以及

iOS UI进阶-1.0网易彩票框架搭建

仿网易彩票,最终要做成的效果如下: 一.分层搭建 1.新建一个项目,Lottery.只支持7.1以上坚屏. 2.将素材全部图片全部拉到相应的文件夹里. 3.选中Lottery--右键Show in Finder ,在Lottery文件夹下新建一个Classes,并分别分层成MVC文件夹. 4.把Classes拉到Lottery项目里,整个框架结构如 二.UI搭建 分层好之后,接下来,我们搭建一下界面.使用Storyboard进行搭建. 1.点击Main.storyboard,删除原来的界面,分别

(素材源码)猫猫学iOS(四十六)之网易彩票幸运大转盘

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 素材源码地址:http://download.csdn.net/detail/u013357243/8713827 效果 代码: NYWheel NYWheel.h // // NYWheel.h // 网易彩票幸运大转盘 // // Created by apple on 15-5-18. // Copyright (c)

关于仿网易新闻中详细页图文混排功能的实现

最近在了解关于新闻内容的图文混排的效果,网上有人开源一个仿网易新闻的代码,本文就是简单记录学习其详细页面显示的效果实现: 下载地址:https://github.com/dsxNiubility/SXNews 效果图: 其原理:通过网络请求获得相关的信息,再通过手机端进行拼HTML,然后在WebView进行展示,此处还对文章中的图片增加点击效果,可以保存到相册中:文章的样式已经存在项目中,直接去调用: 1:首先了解两个相关的实体对象,一个是新闻的主体内容,另外一个就是图片的相关信息实体: 1:主

仿网易‘垃圾箱’动画效果

一说到动画,大家会说到CSS3动画,确实,本文带来一片简单的仿网易'垃圾箱'动画效果,涉及到的知识点是transform.transition transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. transform: none|transform-functions; transition 属性是一个简写属性,用于设置四个过渡属性. transition: property duration timing-function delay; 首

iOS 网易彩票-5设置模块三(常用小功能)

该篇文章中,用到很多iOS开发过程中常用的小功能,当前只是将这些功能集成到网易彩票的设置中.iOS-常用小功能介绍,请参考我的另一篇文章: iOS 常用小功能 总结:http://www.cnblogs.com/jys509/p/4805030.html 关于 效果图 思路分析: 使用self.tableView.tableHeaderView 自定义组头部,通过加载xib来实现 评分支持,使用[iOS 常用小功能 总结]中“应用评分”小功能 客户电话,使用[iOS 常用小功能 总结]中“打电话

Android应用经典主界面框架之二:仿网易新闻client、CSDN client (Fragment ViewPager)

另外一种主界面风格则是以网易新闻.凤凰新闻以及新推出的新浪博客(阅读版)为代表.使用ViewPager+Fragment,即ViewPager里适配器里放的不是一般的View.而是Fragment.所以适配器不能继承PagerAdapter,而要继承FragmentPagerAdapter,这是在android.support.v4.app.FragmentPagerAdapter包里的.有点奇葩的是,FragmentPagerAdapter仅仅在这个包里有,在android.app.*这个包以

iOS开发——开发实战OC篇&网易彩票实战总结(错误)

网易彩票实战总结(错误) 错误总结之类的实现 经典错误之重复定义与导入错误 经典错误关于父类的实现 通知对象: 控制器的定义 Xcode新特性,launchScreen.XIb启动图片的设置 在launchScreen.XIb中添加一个UImageView并且设置约束,然后设置对应的图片就可以 关于launchScreen.XIb底层的实现:其实就是屏幕截屏 导航栏样式:根据不同界面实现不同样式的导航栏. 导航栏增加按钮等控件: 方法的调用 自定义控件 修改插件: MAC1/ 用户 /cocos