QQ空间HD(5)-添加左侧菜单栏内容
DJIconView.m
#import "DJIconView.h" @implementation DJIconView - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { // self.backgroundColor = [UIColor redColor];
self.imageView.layer.cornerRadius = ;
[self setImage:[UIImage imageNamed:@"yongdaimi"] forState:UIControlStateNormal];
[self setTitle:@"yongdaimi" forState:UIControlStateNormal];
[self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.titleLabel.font = [UIFont systemFontOfSize:];
self.titleLabel.textAlignment = NSTextAlignmentCenter; }
return self; } - (void)layoutSubviews { [super layoutSubviews]; if (DJLandscape) { // 横屏 /* imageView */
self.imageView.width = self.width;
self.imageView.height = self.imageView.width;
self.imageView.x = ;
self.imageView.y = ; /* titleLabel */
self.titleLabel.hidden = NO;
self.titleLabel.width = self.width;
self.titleLabel.height = ;
self.titleLabel.x = ;
self.titleLabel.y = self.imageView.height; } else { // 竖屏 /*imageView*/
self.imageView.width = self.width;
self.imageView.height = self.imageView.width;
self.imageView.x = ;
self.imageView.y = ; /*titleLabel*/
self.titleLabel.hidden = YES; } } @end
DJTabBar.m
#import "DJTabBar.h" @implementation DJTabBar - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { // self.backgroundColor = [UIColor greenColor]; [self setupBtnImage:@"tab_bar_feed_icon" title:@"全部动态"];
[self setupBtnImage:@"tab_bar_passive_feed_icon" title:@"与我相关"];
[self setupBtnImage:@"tab_bar_pic_wall_icon" title:@"照片樯"];
[self setupBtnImage:@"tab_bar_e_album_icon" title:@"电子相框"];
[self setupBtnImage:@"tab_bar_friend_icon" title:@"好友"];
[self setupBtnImage:@"tab_bar_e_more_icon" title:@"更多"]; } return self;
} - (void)setupBtnImage:(NSString *)imageName title:(NSString *)title { UIButton *btn = [[UIButton alloc] init];
// 设置按钮内容左对齐
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
// 设置左填充
btn.contentEdgeInsets = UIEdgeInsetsMake(, , , );
[btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
btn.titleEdgeInsets = UIEdgeInsetsMake(, , , ); [btn setTitle:title forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"tabbar_separate_selected_bg"] forState:UIControlStateDisabled]; [self addSubview:btn]; } - (void)layoutSubviews { [super layoutSubviews]; NSUInteger count = self.subviews.count; if (DJLandscape) { // 横屏
for (int i = ; i < count; i++) {
UIButton *btn = self.subviews[i];
btn.width = self.width;
btn.height = self.width / ;
btn.x = ;
btn.y = i * btn.height;
}
} else {
for (int i = ; i < count; i++) {
UIButton *btn = self.subviews[i];
btn.width = self.width;
btn.height = btn.width;
btn.x = ;
btn.y = i * btn.height;
}
} } @end
QzoneHD.pch
// 横屏
#define DJLandscape ([UIScreen mainScreen].bounds.size.width == 1024)
// 竖屏
#define DJPortrait ([UIScreen mainScreen].bounds.size.width == 768)
最终效果:
横屏:
竖屏:
QQ空间HD(5)-添加左侧菜单栏内容的更多相关文章
- QQ空间HD(4)-设置左侧菜单栏属性
DJHomeViewController.m #import "DJHomeViewController.h" #import "DJMenuView.h" ; ...
- QQ空间HD(6)-实现自定义的选项卡切换效果
DJTabbarButton.m #import "DJTabbarButton.h" @implementation DJTabbarButton - (instancetype ...
- QQ空间HD(1)-UIPopoverController基本使用
UIPopoverController 是iPad的专属API ViewController.m #import "ViewController.h" #import " ...
- QQ空间HD(3)-Modal的切换效果总结
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { UIViewController ...
- QQ空间HD(2)-UIPopoverController其它使用
DJTestViewController.m #import "DJTestViewController.h" #import "DJColorTableViewCont ...
- Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件
大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: .QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于 ...
- 分享内容到微博、QQ空间、人人网、开心网等社区
网上有不少分享内容到微博.QQ空间.人人网.开心网等社区的插件,但它们都有自己固定的样式,你不一定会喜欢. 或许你想保持你的网站的原状,添加上微博.QQ空间.人人网.开心网的LOGO图片,点击之后就可 ...
- QQ空间添加背景音乐
QQ空间背景音乐方式 1.QQ音乐添加背景音乐一种是开通绿砖[有矿的忽略此条]2.QQ空间添加网络音乐的方法步骤:1.首先,需要先下载好想要音乐作为QQ空间背景音乐的歌曲文件(建议为MP3格式)[我这 ...
- QQ空间动态内容,好友信息,点赞爬虫脚本
一.安装基础的软件包: 1.准备好火狐浏览器,并下载geckodriver,将geckodriver加入到环境变量:下载geckodriver的地址:https://pan.baidu.com/s/1 ...
随机推荐
- windows常用端口对应表
端口概念 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等.二是逻辑意义 ...
- 一个开关电源传导、辐射处理案例-----Layout环路
这是一款输入宽电压120-277V 60HZ,输出48V,273mA的电源,使用美芯晟MT7933,采用Buck拓扑结构. 注:在最初的设计中,预留电感L1.L2,CBB电容C1.C2作为传导测试元 ...
- Redis的安装
1. 中文官网:http://www.redis.cn/download.html 英文官网:http://www.redis.io/download 里面的内容的一样的,就是一个是中文写的,一个是英 ...
- etl结合java的例子
1.新建Java测试类,导出Jar包,放在kettle目录中的libext文件中 package test; public class Test{ public static final String ...
- 字符加密Cipher(bzoj 1031)
Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法.例如下图,可以读作 ...
- Notepad++ 配置 Node.js 开发环境
首先安装一个notepad++的插件NppExec,在Notepad++的Plugin Manager里面进行安装. 安装完后,在这个插件的菜单里面选择Execute 在对话框中输入以下的内容: if ...
- Matlab && C-Mex Round 1
前言:本篇文章主要通过一个简单的例子程序对C-Mex进行一个初步的说明.前期的环境搭建(包括安装Matlab和gcc编译器)就不在这里赘述了. 在看文章之前,建议初学者先检查一下Matlab的mex配 ...
- NDK开发之一
2015.07.22 Wiki_Tree: --NDK开发: --NDK特征: --MK文件编写规则: NDK开发: Ndk-build编译时会生成的两个同名的so库,位于不同的目录/project ...
- 基本排序算法的Python实现
本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序.希望大家回顾知识的时候也能从我的这篇文章得到帮助. 为了防止误导读者,本文所有概念性 ...
- Android 线程池(转)
new Thread的弊端及Java四种线程池的使用: 1.new Thread的弊端 ); } catch (InterruptedException e) { // TODO Auto-gener ...