分类
博客搭建

小白搭建博客超详细教程~

前沿:一周前搭好了自己的博客,正好身边有朋友的作业是搭建博客,为此她也十分苦恼(?),所以写了一个教程,希望能帮助到有需要的人。

博客三要素:服务器、域名、界面

总花费:一周空余时间+18元(抠门达人哈哈哈哈)

一、服务器

介绍:轻量级服务器

购买网址:阿里云学生机购买入口

1、如图,点击轻量应用服务器

2、地区选择华北、选择系统镜像->CentOS,其余为默认值

3、返回阿里云首页,并选择轻量应用服务器控制台

4、点击进入控制台

5、会看到自己新买的服务器列表(这里默认叫CentOS)

6、先回到阿里云控制台,在左侧点击远程连接

7、首先在命令行输入

sudo su root
切换至root账号

8、继续输入

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

等待,其间需要输入y确认

9、安装成功 显示公网(外网)网址,用户名以及密码

服务器告一段落

二、域名

1、购买域名

分类
iOS学习

swift CardView踩过的大坑

如题 做一个swift卡片

1、别问,问就是踩了大坑

呜呜呜 TableView cell 的contentView 默认高度是44 我以为是行高

let cell = tableView.dequeueReusableCell(withIdentifier: "NewsList", for: indexPath)

let cell = NewsListTableViewCell(style: .default, reuseIdentifier: "NewsList")//这个是代码

这两个方法有什么区别吗? 觉得第一个方法不用也罢

2、别问,问就是 CellForRowAtIndexPath不执行,原因如下:

1.没有设置代理或设置的代理有问题。

2.代理方法,返回行数或者组数可能为0

3、去除分割线

Swift中设置tableview的分割线(separator)的样式、颜色、边距

    //设置分割线样式
    // 三种分割线样式:
    // case None  无分割线
    // case SingleLine 单条分割线
    // case SingleLineEtched // This separator style is only supported for grouped style table views currently

    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
    //设置分割线颜色
    self.tableView.separatorColor = UIColor.redColor()
    //设置分割线内边距
    self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)

4、关于执行顺序的问题

provider.request()函数是一个逃逸闭包,在ViewDidLoad()函数最后执行,因此

1、tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 函数必须分有无数据情况讨论

2、必须在getData()中加入reloadData()

分类
iOS学习

swift 处理Moya数据

如题,处理moya数据

1、提取成功代码

2、转化为json(利用mapString)

3、转化为对象数组(利用JSONDecoder().decode)

let respose = try  moyaResponse.filterSuccessfulStatusCodes()
let jsonString = try respose.mapString()
let userData: [UserData] = try JSONDecoder().decode([UserData].self, from:jsonString.data(using: .utf8)!)
分类
iOS学习

swift 滚动分段控制器

将ScrollView与SegmentedControl结合使用

视频加载不出来,看了个寂寞(

import UIKit
import Moya
class ViewController: UIViewController {
    var headerSeg = UISegmentedControl(items: [ "通知公告","学籍管理","考试管理","排课选课"
    ,"成绩管理","毕业管理","实践教学","毕业设计","学科竞赛","综合管理"])
    var scrollView = UIScrollView()
    var newslistModel : [MyNewsListModel] = []
    let provider = MoyaProvider<MyNewsListTarget>()
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "资讯"
        self.view.backgroundColor = .white
        setLayout()
        self.headerSeg.addTarget(self, action: #selector(tapped), for: .valueChanged)
    }
    
    func setLayout()
    {
        self.headerSeg.frame.origin = CGPoint(x: 0, y: 0)
        self.headerSeg.frame.size.height = 50.0
        self.headerSeg.frame.size.width = 125.0*10
//        self.scrollView.frame.origin = CGPoint(x: 0, y: (self.navigationController?.navigationBar.frame.height ?? 80) + 20)
        self.scrollView.frame = CGRect(x: 0, y: ((self.navigationController?.navigationBar.frame.height ?? 80) + 20), width: self.view.bounds.width, height: 50)
        self.view.addSubview(self.scrollView)
        self.scrollView.addSubview(self.headerSeg)
        scrollView.isScrollEnabled = false
        for i in 0...9
        {
            headerSeg.setWidth(125, forSegmentAt: i)
        }
         self.scrollView.contentSize = CGSize(width: headerSeg.widthForSegment(at: 1)*20, height: 50)
    }
    
    @objc func tapped()
    {
        switch self.headerSeg.selectedSegmentIndex {
        case 0:
            self.scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
        case 1:
            self.scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
        case 2:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1), y: 0), animated: true)
        case 3:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*2, y: 0), animated: true)
        case 4:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*3, y: 0), animated: true)
        case 5:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*4, y: 0), animated: true)
        case 6:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*5, y: 0), animated: true)
        case 7:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*6, y: 0), animated: true)
        case 8:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*7, y: 0), animated: true)
        case 9:
            self.scrollView.setContentOffset(CGPoint(x: headerSeg.widthForSegment(at: 1)*7, y: 0), animated: true)
        default:
            return
        }
    }
    
}
分类
iOS学习

Xcode 11新建swift 项目

如题 新建swift项目

1、在AppDelegate中声明window属性

2、AppDelegate中两个关于Scene的类添加版本控制,用扩展单独拎出来

@UIApplicationMain
 
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?
 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        if #available(iOS 13, *) {
        }else {
            window = UIWindow.init()
            window?.frame = UIScreen.main.bounds
            window?.makeKeyAndVisible()
            window?.rootViewController = UIViewController.init()
        }
        return true
        
    }
}
 
@available(iOS 13.0, *)
extension AppDelegate {
    // MARK: UISceneSession Lifecycle
    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }
 
    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
    }
}

3、SceneDelegate中添加版本控制

import UIKit
@available(iOS 13, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
 
    var window: UIWindow?
 
 
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        
        let windowScene:UIWindowScene = scene as! UIWindowScene
        window = UIWindow.init(windowScene: windowScene)
        window?.backgroundColor = UIColor.green
        window?.frame = UIScreen.main.bounds
        window?.makeKeyAndVisible()
        let tt = UIViewController.init()
        tt.view.backgroundColor = UIColor.brown
        window?.rootViewController = tt
        guard let _ = (scene as? UIWindowScene) else { return }
    }
}

分类
未分类

同行们,您好!

这是我的第一篇WordPress博客哇哇哇~