程序员人生 网站导航

仿网易彩票代码实现

栏目:综合技术时间:2014-12-13 08:44:07

仿网易彩票代码实现

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

// 取出全部导航条
UINavigationBar *bar = [UINavigationBar appearance];
// 设置全部导航条的背景图片
[bar setBackgroundImage:[UIImage imageName:
@"navigationbar_background.png"] forBarMetrics:UIBarMetricsDefault];
// 导航栏上有1层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]];
2、解决IOS6和IOS7兼容性问题
程序启动的时候,隐藏状态栏,ios6需要恢复状态栏显示
设置状态栏色彩 ios7默许状态栏交给控制器管理,修改info.plist文件,让状态栏交给application管理
application.statusBarHidden = NO;
application.
statusBarStyle = UIStatusBarStyleLightContent;
3、自定义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有兼容性问题
boundingRectWithSizeios7才有,ios6没有这个方法。
IOS6需要用这个方法,获得当前文字的尺寸,计算内部Label的尺寸。
titleW = [self.currentTitle sizeWithFont:[UIFont systemFontOfSize:15.0]].width;
4、button imagestroyboard的拉伸
注意:
通过storyboard只能拉伸UIImageView,而buttonstoryboard不能拉伸,只能用代码实现。  
 storyboard x:表示左侧多少不拉伸 y:表示上边多少不拉伸 w:表示宽度拉伸多少个像素 h:表示高度拉伸多少个像素 x:0.5(左侧1半不拉伸) y:0.5(顶部1半不拉伸) w:0 (宽度拉伸1个像素) h:0(高度拉伸1个像素)。
  
// 拉伸按钮
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];
5、UICollectionViewController
UICollectionViewController默许有1个UICollectionView,但是self.collectionView != self.view
UITableViewController默许有1个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.每一个cellframe
    layout.
itemSize = CGSizeMake(80, 80);
   
// 3.设置cell之间的水平间距
    layout.
minimumInteritemSpacing = 0;
   
// 4.设置cell之间的垂直间距
    layout.
minimumLineSpacing = 10;
   
// 5.设置4周的内边距
    layout.
sectionInset = UIEdgeInsetsMake(layout.minimumLineSpacing, 0, 0, 0);
   
return [super initWithCollectionViewLayout:layout];

使用UICollectionView 
    第1步:必须有布局
   
第2部:cell必须自己注册
6、解析JSON数据
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"products.json" ofType:nil];
NSData *data =  [NSData dataWithContentsOfFile:fileName];
NSArray *jsonArr =  [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
7、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];
}
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐