Together项目IOS平台开发03
来源:互联网 发布:怎么修改淘宝号地区 编辑:程序博客网 时间:2024/05/20 13:40
今天是5月18日,又到了代码提交日期。今天要完成的是一个主用户界面的设计以及代码实现。
在这里,我的界面主要包含以下几个要素,用户的头像(圆形显示图片)、用户的昵称;“项目的发起”、“我的团队”、“我的收藏”(用户之前在浏览项目的时候可以点击收藏,并在“我的收藏”中查看)、“个人资料”、“设置”。这些菜单项现在没有设计关联到他们具体的子菜单,但是在不久我将会完成这个部分。除了这些元素,我还给这个界面添加了一个小的背景,使整体显示变的美观。
在代码的实现部分,我说明以下几点。首先,圆形头像框使用了和之前完成的登录界面的圆形头像框一样的技术,如果想要查看具体的内容,请阅读我的上一篇博客————《Together项目IOS平台开发02》。
在圆形头像框下面的昵称栏,我使用了一个简单的UITextField。这个地方注意到他的排版位置就可以了。
在下面是一个“发起项目”的按钮,我使用率UIButton。同时,我用了一张我自己设计的png图片来替换了原来的button的样式。这张png保存在assets文件夹中。注意图片的格式一定要使用png,如果你想让你的图片成为一个背景透明的素材的话。
其他的部分我使用了UITableView的模版代码,注意tableview的方法重写问题。我添加了2个分区,每个分区显示两个cell;分别是“我的团队”、“我的收藏”,“个人资料”、“设置”。这个地方我将他的额可滑动属性关闭,以免产生拖拽过程中的界面显示问题。TableView样式上采用了grouped的风格。在后期这个地方,我可能在每个cell前面添加一个图标是的用户的交互更加有效,界面的显示更加美观。
以上是基本的注意点,其他均为一般的代码,注意调试即可。下面是整个界面的效果图!
以下是整体的代码
//// UserViewController.swift// FinalTest//// Created by 沈力同 on 2017/5/10.// Copyright © 2017年 沈力同. All rights reserved.//import UIKitclass UserViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{ let screenSizeWidth = UIScreen.main.bounds.size.width let screenSizeHeight = UIScreen.main.bounds.size.height var downView:UIView! var tableView:UITableView? var allnames:Dictionary<Int, [String]>? var adHeaders:[String]? override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white //背景图片 let imageView = UIImageView(image:UIImage(named:"IMG03.jpg")) imageView.frame = CGRect(x: 0, y: 0, width: screenSizeWidth, height: screenSizeHeight/2-50) self.view.addSubview(imageView) downView = UIView(frame:CGRect(x: 0, y: screenSizeHeight/2-50, width: screenSizeWidth, height: screenSizeHeight/3*2)) downView.backgroundColor = UIColor.white downView.alpha = 0.85 imageView.addSubview(downView) //圆形图片头像显示 let image_U = UIImageView(image:UIImage(named:"IMG01.jpg")) let round_radius:CGFloat = 40 image_U.frame = CGRect(x: screenSizeWidth/2-round_radius, y: 90, width: round_radius*2, height: round_radius*2) image_U.layer.cornerRadius = round_radius image_U.layer.masksToBounds = true self.view.addSubview(image_U) //添加一个昵称标签 let label01 = UILabel(frame:CGRect(x:screenSizeWidth/2-100, y:180, width:200, height:40)) label01.text = "SHENLITONG" label01.textAlignment = .center//文字居中 label01.textColor = UIColor.white self.view.addSubview(label01); //“发起项目”按钮 let button01 = UIButton(type: .system) button01.frame = CGRect(x:screenSizeWidth/2-60, y:220, width:120, height:40) let iconImage01 = UIImage(named:"button_creat")?.withRenderingMode(.alwaysOriginal) button01.setImage(iconImage01,for:.normal) //设置图标 button01.adjustsImageWhenHighlighted=false //使触摸模式下按钮也不会变暗(半透明) button01.adjustsImageWhenDisabled=false //使禁用模式下按钮也不会变暗(半透明) self.view.addSubview(button01); //初始化数据,这一次数据,我们放在属性列表文件里 self.allnames = [ 0:[String]([ "我的团队", "我的收藏"]), 1:[String]([ "个人资料", "设置"]) ]; self.adHeaders = [ "常见 UIKit 控件!", "高级 UIKit 控件!" ] //创建表视图// self.tableView = UITableView(frame:self.view.frame, style:.grouped) self.tableView = UITableView(frame:CGRect(x:0, y:screenSizeHeight/2-50, width:screenSizeWidth, height:screenSizeHeight), style:.grouped) self.tableView!.delegate = self self.tableView!.dataSource = self self.tableView!.isScrollEnabled = false //创建一个重用的单元格 self.tableView!.register(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell") self.view.addSubview(self.tableView!) } //在本例中,有2个分区 func numberOfSections(in tableView: UITableView) -> Int { return 2; } //返回表格行数(也就是返回控件数) func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let data = self.allnames?[section] return data!.count } // UITableViewDataSource协议中的方法,该方法的返回值决定指定分区的头部 func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { // return self.adHeaders?[section] return nil } // UITableViewDataSource协议中的方法,该方法的返回值决定指定分区的尾部 func tableView(_ tableView:UITableView, titleForFooterInSection section:Int)->String? { let data = self.allnames?[section] // return "有\(data!.count)个控件" return nil } //创建各单元显示内容(创建参数indexPath指定的单元) func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { //为了提供表格显示性能,已创建完成的单元需重复使用 let identify:String = "SwiftCell" //同一形式的单元格重复使用,在声明时已注册 let cell = tableView.dequeueReusableCell( withIdentifier: identify, for: indexPath) cell.accessoryType = .disclosureIndicator let secno = indexPath.section var data = self.allnames?[secno] cell.textLabel?.text = data![indexPath.row] return cell } // UITableViewDelegate 方法,处理列表项的选中事件 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { self.tableView!.deselectRow(at: indexPath, animated: true) let itemString = self.allnames![indexPath.section]![indexPath.row] let alertController = UIAlertController(title: "提示!", message: "你选中了【\(itemString)】", preferredStyle: .alert) let cancelAction = UIAlertAction(title: "确定", style: .cancel, handler: nil) alertController.addAction(cancelAction) self.present(alertController, animated: true, completion: nil) } func click(){ let LogView = LogViewController() self.navigationController?.pushViewController(LogView, animated: true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }}
- Together项目IOS平台开发03
- Together项目IOS平台开发01
- Together项目IOS平台开发02
- Together项目IOS平台开发04
- Together项目IOS平台开发05
- Together项目IOS平台开发06
- Together项目IOS平台开发07
- Together项目IOS平台开发08
- Together项目IOS平台开发09
- Together项目IOS平台开发10
- Together项目IOS平台开发11
- Together项目后台开发03
- Together项目后台开发01
- Together项目后台开发02
- Together项目后台开发04
- Together项目后台开发05
- Together项目后台开发06
- Together项目后台开发07
- Linux目录结构详细介绍
- 卡特兰数的详解
- c语言之交换一个指针数组的值
- Java面试题
- 项目管理总结
- Together项目IOS平台开发03
- android解决quick documentation(Ctrl+Q)慢的问题
- 1.6 宏的使用实例
- GIT 常用命令
- 寻找数组中和为指定数字的子数组,可以重复,Leetcode 39
- 1000 A+B problem
- java 链接mysql jdbc
- Fiddler设置断点
- c文件操作