在编写QQ主界面的心得

在学了这么多的UI后想做一个qq主界面第一次做不是很好.但是我也注意到层次如何分配的问题。因为中间有一个tableView如何添加这个视图了,在我第一次犯了一个这样的错误,不是我想自定义一个TabBar我一开始试了让tableViewController成为根控制器但是在添加TabBar的时候他是活动的这样是不行的,后来尝试了用UIViewController为根控制器虽然可以解决自定义TabBar的移动的问题,但是在控制器的View添加tableView时tableView继承滑动视图的属性就没有了只能限制在试图控制器view上不能滑动。以上的两种都是不可以的。最后我用UITabBarConroller为控制器,让它去管理各种视图的控制器,处理好各个视图控制器的位置,这是向里面添加一个控制器的代码:

TableViewController *tableView=[[TableViewController alloc]init];

UINavigationController *firstNavigation=[[UINavigationController alloc]initWithRootViewController:tableView];

[firstNavigation.navigationBar setBackgroundImage:[UIImage imageNamed:@"65329381"] forBarMetrics:UIBarMetricsCompact];

。。。。。。。。然后用数组管理各个UINavigationController的对象即可(作为新手经常写成创建的视图)。

//__________________新手注意的问题___________________________________________________________

1.在自定义TabBar 的时候背景图片在最下面按钮在最上面。但是为什么层次没有问题会遇到按钮不能点击且不能响应相应的事件,这是因为你的UIbutton是添加在UIimageView上,它只是个View不会响应事件的。这是你的打开UIimageView的与用户的交互代码。imageView.userInteractionEnabled=YES;

2.如何设置圆形的按钮;

button.layer.cornerRadius = width/2.0;

button.layer.masksToBounds = width/2.0;

设置按钮圆角半径和界面边界的宽/2.0即可,用这个可以获得各种button的形状,因除的数不同而异。

//获取button的宽

NSInteger width=button.frame.size.width;

3.如何设置透明的UINavigationController,有很多的界面为了保证界面的一致性通常吧UINavigationController设置透明,只要实现这个UINavigationController风格的代码

[firstNavigation.navigationBar setBackgroundImage:[UIImage imageNamed:@"65329381"] forBarMetrics:UIBarMetricsCompact];这个UIBarMetricsCompact的风格,图片可以随便的添加。

4.在设置tableView的位置是我是习惯在- (void)viewDidLoad这个方法里面设置他的位置,但是无论怎么设置都没有改变,(可能是已经添加了tableView的视图吧默认不变吧,不过应该等默认的初始化设置后进行(不太确定什么时候),我在tableviewcontroller的tableview加载后(viewdidload中有时不起作用)再设置就生效了)

我们应该在视图的出现之后在进行设置tableView的位置,这样才有效

- (void) viewDidAppear:(BOOL)animated{

[super viewDidAppear:animated];

self.tableView.frame=CGRectMake(0, 38, 375, 1000);

时间: 2024-07-29 16:49:10

在编写QQ主界面的心得的相关文章

Swift实战-小QQ(第3章):QQ主界面布局

1.建一个tabbarController 三个navigationController 三个ViewController 2.将SliderViewController文件中的initSubViews后面添加代码: //用mainContentView装下MainTab var mainTabVC: UITabBarController! = self.storyboard!.instantiateViewControllerWithIdentifier("MainTabViewControl

electron仿制qq(2) 主界面制作

制作从头开始 最后会将写好的组件放到一起的!之前写了好几天的纯css 有点累 本章中将使用sass 如果代码太长 会分两个或多个章节写代码中会有详细的注释 以便于大家阅读and理解界面可能会有部分偏差 比较是仿制的 官方界面尺寸 默认宽度: 280px (大约 我之前拉伸过 被记录了 所以没法准确的测量)默认高度: 652px (也是大约值)最小高度: 528px最小宽度: 280px最大高度: 1041px (可能不太准确 有可能是根据分辨率来显示的)最大宽度: 605px顶部头像区域高度:

Android应用经典主界面框架之一:仿QQ (使用Fragment, 附源码)

最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类.今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页.早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势.本文也使用fragment进行搭建,标题中的"经典"指这种交互经典,非本文的代

Android应用经典主界面框架之一:仿QQ (使用Fragment)

最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类.今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页.早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势.本文也使用fragment进行搭建,标题中的“经典”指这种交互经典,非本文的代码框架结构

输入password登录到主界面,录入学生编号,排序后输出

n 题目:输入password登录到主界面,录入学生编号,排序后输出 n 1.  语言和环境 A.实现语言 C语言 B.环境要求 VC++ 6.0 n 2.  要求 请编写一个C语言程序.将若干学生编号按字母顺序(由小到大)输出. 程序的功能要求例如以下: 1)  输入password"admin",正确则进入主界面,错误则直接推出(exit(0)): 2)从键盘输入5个学生编号"BJS1001","BJS2001"."BJS1011&

Android代码优化,主界面卡住

============问题描述============ 程序打开进入MainActivity,其实MainActivity没做什么操作,MainActivity是加载sildingmenu+actionbar+fragment,具体业务操作是在fragment里面进行的,但是程序会在MainActivity那里显示MainActivity的xml,其实什么都没有,但是会停留1~5秒左右,才去显示fragment的xml,感觉很奇怪,如果卡也是会卡在fragment那里,结果fragment又不

iOS开发之主界面的左右滑动

前言:可能很多iOS开发者在学习之初都会对QQ的主界面的左滑与右滑动感到好奇,今天开始写我人生中的第一篇博客,即:iOS开发之Slide(主界面侧滑侧边栏). 正文: 首先,新建类(HomeViewController:命名随自己)继承ViewController. 然后我们需要声明这些属性: //滑动速度系数-建议在0.5-1之间.默认为0.5 @property (nonatomic, assign) CGFloat speedf; //左侧窗控制器 @property (nonatomic

三种实现Android主界面Tab的方式

在平时的Android开发中,我们经常会使用Tab来进行主界面的布局.由于手机屏幕尺寸的限制,合理使用Tab可以极大的利用屏幕资源,给用户带来良好的体验.学会Tab的使用方法已经成为学习Android开发必不可少的技能了.我们经常使用的微信.QQ就是使用Tab的方式进行主界面的布局的. 下面我们通过三种方式实现旧版的微信以演示Tab的使用方式. 最终效果: 第一种:单纯使用ViewPager MainActivity.java public class MainActivity extends

亲身体验用Java写的仿qq聊天界面

Java开发工具有许多种,新手用记事本写Java程序,有些人用NetBean,jbuilder,高手用eclipse,下面介绍用eclipse开发qq聊天界面. 代码如下: package Myjava_QQ; import java.awt.*; import javax.swing.*; import Myjava_QQ.truess; import java.awt.event.*; import java.applet.*; import java.io.BufferedReader;