DJIconView.m

  1. #import "DJIconView.h"
  2.  
  3. @implementation DJIconView
  4.  
  5. - (instancetype)initWithFrame:(CGRect)frame {
  6.  
  7. if (self = [super initWithFrame:frame]) {
  8.  
  9. // self.backgroundColor = [UIColor redColor];
  10. self.imageView.layer.cornerRadius = ;
  11. [self setImage:[UIImage imageNamed:@"yongdaimi"] forState:UIControlStateNormal];
  12. [self setTitle:@"yongdaimi" forState:UIControlStateNormal];
  13. [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  14. self.titleLabel.font = [UIFont systemFontOfSize:];
  15. self.titleLabel.textAlignment = NSTextAlignmentCenter;
  16.  
  17. }
  18. return self;
  19.  
  20. }
  21.  
  22. - (void)layoutSubviews {
  23.  
  24. [super layoutSubviews];
  25.  
  26. if (DJLandscape) { // 横屏
  27.  
  28. /* imageView */
  29. self.imageView.width = self.width;
  30. self.imageView.height = self.imageView.width;
  31. self.imageView.x = ;
  32. self.imageView.y = ;
  33.  
  34. /* titleLabel */
  35. self.titleLabel.hidden = NO;
  36. self.titleLabel.width = self.width;
  37. self.titleLabel.height = ;
  38. self.titleLabel.x = ;
  39. self.titleLabel.y = self.imageView.height;
  40.  
  41. } else { // 竖屏
  42.  
  43. /*imageView*/
  44. self.imageView.width = self.width;
  45. self.imageView.height = self.imageView.width;
  46. self.imageView.x = ;
  47. self.imageView.y = ;
  48.  
  49. /*titleLabel*/
  50. self.titleLabel.hidden = YES;
  51.  
  52. }
  53.  
  54. }
  55.  
  56. @end

DJTabBar.m

  1. #import "DJTabBar.h"
  2.  
  3. @implementation DJTabBar
  4.  
  5. - (instancetype)initWithFrame:(CGRect)frame {
  6.  
  7. if (self = [super initWithFrame:frame]) {
  8.  
  9. // self.backgroundColor = [UIColor greenColor];
  10.  
  11. [self setupBtnImage:@"tab_bar_feed_icon" title:@"全部动态"];
  12. [self setupBtnImage:@"tab_bar_passive_feed_icon" title:@"与我相关"];
  13. [self setupBtnImage:@"tab_bar_pic_wall_icon" title:@"照片樯"];
  14. [self setupBtnImage:@"tab_bar_e_album_icon" title:@"电子相框"];
  15. [self setupBtnImage:@"tab_bar_friend_icon" title:@"好友"];
  16. [self setupBtnImage:@"tab_bar_e_more_icon" title:@"更多"];
  17.  
  18. }
  19.  
  20. return self;
  21. }
  22.  
  23. - (void)setupBtnImage:(NSString *)imageName title:(NSString *)title {
  24.  
  25. UIButton *btn = [[UIButton alloc] init];
  26. // 设置按钮内容左对齐
  27. btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
  28. // 设置左填充
  29. btn.contentEdgeInsets = UIEdgeInsetsMake(, , , );
  30. [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
  31. btn.titleEdgeInsets = UIEdgeInsetsMake(, , , );
  32.  
  33. [btn setTitle:title forState:UIControlStateNormal];
  34. [btn setBackgroundImage:[UIImage imageNamed:@"tabbar_separate_selected_bg"] forState:UIControlStateDisabled];
  35.  
  36. [self addSubview:btn];
  37.  
  38. }
  39.  
  40. - (void)layoutSubviews {
  41.  
  42. [super layoutSubviews];
  43.  
  44. NSUInteger count = self.subviews.count;
  45.  
  46. if (DJLandscape) { // 横屏
  47. for (int i = ; i < count; i++) {
  48. UIButton *btn = self.subviews[i];
  49. btn.width = self.width;
  50. btn.height = self.width / ;
  51. btn.x = ;
  52. btn.y = i * btn.height;
  53. }
  54. } else {
  55. for (int i = ; i < count; i++) {
  56. UIButton *btn = self.subviews[i];
  57. btn.width = self.width;
  58. btn.height = btn.width;
  59. btn.x = ;
  60. btn.y = i * btn.height;
  61. }
  62. }
  63.  
  64. }
  65.  
  66. @end

QzoneHD.pch

  1. // 横屏
  2. #define DJLandscape ([UIScreen mainScreen].bounds.size.width == 1024)
  3. // 竖屏
  4. #define DJPortrait ([UIScreen mainScreen].bounds.size.width == 768)

最终效果:

横屏:

竖屏:

QQ空间HD(5)-添加左侧菜单栏内容的更多相关文章

  1. QQ空间HD(4)-设置左侧菜单栏属性

    DJHomeViewController.m #import "DJHomeViewController.h" #import "DJMenuView.h" ; ...

  2. QQ空间HD(6)-实现自定义的选项卡切换效果

    DJTabbarButton.m #import "DJTabbarButton.h" @implementation DJTabbarButton - (instancetype ...

  3. QQ空间HD(1)-UIPopoverController基本使用

    UIPopoverController 是iPad的专属API ViewController.m #import "ViewController.h" #import " ...

  4. QQ空间HD(3)-Modal的切换效果总结

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { UIViewController ...

  5. QQ空间HD(2)-UIPopoverController其它使用

    DJTestViewController.m #import "DJTestViewController.h" #import "DJColorTableViewCont ...

  6. Android项目实战(十六):QQ空间实现(一)—— 展示说说中的评论内容并有相应点击事件

    大家都玩QQ空间客户端,对于每一个说说,我们都可以评论,那么,对于某一条评论: 白雪公主 回复 小矮人 : 你们好啊~ 我们来分析一下: .QQ空间允许我们 点击 回复人和被回复人的名字就可以进入对于 ...

  7. 分享内容到微博、QQ空间、人人网、开心网等社区

    网上有不少分享内容到微博.QQ空间.人人网.开心网等社区的插件,但它们都有自己固定的样式,你不一定会喜欢. 或许你想保持你的网站的原状,添加上微博.QQ空间.人人网.开心网的LOGO图片,点击之后就可 ...

  8. QQ空间添加背景音乐

    QQ空间背景音乐方式 1.QQ音乐添加背景音乐一种是开通绿砖[有矿的忽略此条]2.QQ空间添加网络音乐的方法步骤:1.首先,需要先下载好想要音乐作为QQ空间背景音乐的歌曲文件(建议为MP3格式)[我这 ...

  9. QQ空间动态内容,好友信息,点赞爬虫脚本

    一.安装基础的软件包: 1.准备好火狐浏览器,并下载geckodriver,将geckodriver加入到环境变量:下载geckodriver的地址:https://pan.baidu.com/s/1 ...

随机推荐

  1. mybatis配置-返回date类型丢失时间

    此博客仅作于平时开发所遇到的问题记录,不做他用,描述可能不好,自己看懂即可~~ resultMap配置返回时间类型时,发现数据库时间是精确到秒的,但是返回给javabean之后丢失时分秒的信息,只有日 ...

  2. 网络抓包工具-Wireshark学习资料

    wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 ...

  3. linux 之静默安装oracle

    Web服务器上面的Linux一般是不会有图形界面的,所有通过图形界面来安装Linux的方式在没有图形界面的Linux上面是行不通的,我们要使用的安装方式叫做Linux的静默安装.即在没有图形界面的Li ...

  4. BI建模原则和常见问题

    BI建模的质量直接影响数据仓库项目的质量,所以在建模前,要对数据仓库的架构组成.大小以及模型功能有明确的定义. 影响BI数据仓库建模的因素众多,往往会随着项目的具体情况不同而变化.但有些原则是相通的, ...

  5. Workerman-文件监控-牛刀小试

    今天学习了workerman , 初次体验了定时器的效果,结合文档.弄了个文件监控. 好了 废话不多说 直接上代码 use Workerman\Worker; require_once __DIR__ ...

  6. HTTP状态码302、303和307的故事

        今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文.       <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有 ...

  7. OpenStack 企业私有云的若干需求(5):主流硬件支持、云快速交付 和 SLA 保证

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  8. codevs 1115 开心的金明--01背包

    1115 开心的金明 2006年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 金明今天很开心,家里购 ...

  9. 离散信源的分类和数学模型&&离散无记忆信源的熵

    1.离散信源的分类和数学模型 在离散时间发出离散符号的信源称为离散信源.如果信源符号集为有限集,则称为有限离散信源.如果信源符号集为无限可数集,则称为无限离散信源. 离散无记忆信源的N次拓展源:设信源 ...

  10. $(this)与this的区别

    相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的  $()  这个符号,实际上这个符号在JQuery中相当于JQu ...