iOS微博个人主页

详细项目链接:Github地址:https://github.com/MinLee6/WeiboUserHomePage

创建控制器LMMyHomeController.h

//
//  LMMyHomeController.h
//  lingfo
//
//  Created by limin on 16/5/24.
//  Copyright © 2016年 anxin. All rights reserved.
//#import <UIKit/UIKit.h>
@interface LMMyHomeController : UIViewController@end
创建控制器LMMyHomeController.m

//
//  LMMyHomeController.m
//  lingfo
//
//  Created by limin on 16/5/24.
//  Copyright © 2016年 anxin. All rights reserved.
//#import "LMMyHomeController.h"
#import "HHHorizontalPagingView.h"
#import "UIView+WhenTappedBlocks.h"
#import "HomePageContentTableVC.h"#import "LMMyHomeController.h"#define kHeaderTopHeight 200@interface ArtNavView : UIView@property (nonatomic, strong) UIButton *leftBut;
/* 标题 */
@property(nonatomic,strong)UILabel *navTitleLabel;@end@implementation ArtNavView- (instancetype)initWithFrame:(CGRect)frame {if (self = [super initWithFrame:frame]) {[self configUI];}return self;
}- (void) configUI {/** 只是做一个简单示例,要加分割线或其它变化,自行扩展即可*/self.backgroundColor = [UIColor colorWithRed:255/255.0 green:214/255.0 blue:116/255.0 alpha:0];;UIButton *but = [UIButton buttonWithType:UIButtonTypeSystem];but.frame = CGRectMake(0, 22, 44, 44);UIImage *buttonimage = [UIImage imageNamed:@"barbuttonicon_back"];[but setImage:buttonimage forState:UIControlStateNormal];but.tintColor = [UIColor colorWithWhite:1 alpha: 1];self.leftBut = but;[self addSubview:but];UILabel *navTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake((kScreenWidth-100)*0.5, 22, 100, 44)];navTitleLabel.textColor = [UIColor colorWithWhite:1 alpha: 0];if ([UIDevice currentDevice].systemVersion.floatValue <= 8.0) {[navTitleLabel setFont:[UIFont systemFontOfSize:21 weight:0.1]];}else{[navTitleLabel setFont:[UIFont systemFontOfSize:21 weight:0.1]];}navTitleLabel.textAlignment = NSTextAlignmentCenter;self.navTitleLabel = navTitleLabel;[self addSubview:navTitleLabel];}- (void)changeAlpha:(CGFloat)alpha {self.backgroundColor = [UIColor colorWithRed:214/255.0 green:116/255.0 blue:0/255.0 alpha:alpha];self.navTitleLabel.textColor = [UIColor colorWithWhite:1 alpha: alpha];
//    self.leftBut.tintColor = [UIColor colorWithWhite:(1 - alpha) alpha:1];
}@end@interface LMMyHomeController ()<HHHorizontalPagingViewDelegate>@property (nonatomic, strong) HHHorizontalPagingView *pagingView;@property (nonatomic, strong) ArtNavView *navView;
/* 按钮 */
@property(nonatomic,strong)NSMutableArray *buttonArray;
/* 多个数组 */
@property(nonatomic,strong)NSMutableArray *contentVCArrays;
// tableHeaderView
@property (nonatomic, strong) UIView *headerView;@end@implementation LMMyHomeController
#pragma mark - GET方法
- (UIView *)headerView
{if(_headerView == nil){_headerView = [[UIView alloc]init];_headerView.backgroundColor = [UIColor brownColor];_headerView.frame = CGRectMake(0, 0, kScreenWidth, kHeaderTopHeight);//添加头像UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"L7"]];imageView.frame = CGRectMake((kScreenWidth-80)*0.5, (kHeaderTopHeight-80)*0.5, 80, 80);imageView.clipsToBounds = YES;imageView.layer.cornerRadius = 40;[_headerView addSubview:imageView];}return _headerView;
}-(NSMutableArray *)contentVCArrays
{if (!_contentVCArrays) {_contentVCArrays = [NSMutableArray array];}return _contentVCArrays;
}
#pragma mark - 懒加载
- (HHHorizontalPagingView *)pagingView {if (!_pagingView) {CGSize size = [UIScreen mainScreen].bounds.size;_pagingView = [[HHHorizontalPagingView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height) delegate:self];_pagingView.segmentTopSpace = kNavBarHeight;_pagingView.segmentView.backgroundColor = kBgColor;_pagingView.maxCacheCout = 5.;_pagingView.isGesturesSimulate = YES;[self.view addSubview:_pagingView];}return _pagingView;
}
#pragma mark - View配置
- (void)viewDidAppear:(BOOL)animated {[super viewDidAppear:animated];
}- (void)viewWillAppear:(BOOL)animated {[self.navigationController setNavigationBarHidden:YES animated:animated];[super viewWillAppear:animated];self.navView.navTitleLabel.text = @"个人主页";
}- (void)viewDidLoad {[super viewDidLoad];self.edgesForExtendedLayout = UIRectEdgeNone;//     Do any additional setup after loading the view.self.view.backgroundColor = kBgColor;[self.pagingView reload];/* 需要设置self.edgesForExtendedLayout = UIRectEdgeNone; 最好自定义导航栏* 在代理 - (void)pagingView:(HHHorizontalPagingView *)pagingView scrollTopOffset:(CGFloat)offset*做出对应处理来改变 背景色透明度*/self.navView = [[ArtNavView alloc] init];CGSize size = [UIScreen mainScreen].bounds.size;self.navView.frame = CGRectMake(0, 0, size.width, kNavBarHeight);[self.view addSubview:self.navView];[self.navView.leftBut addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
}- (void)back {[self.navigationController popViewControllerAnimated:YES];
}- (void)viewWillDisappear:(BOOL)animated {[self.navigationController setNavigationBarHidden:NO animated:animated];[super viewWillDisappear:animated];
}- (void)showText:(NSString *)str {UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:str delegate: self  cancelButtonTitle:nil otherButtonTitles:nil];[alert show];dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{[alert dismissWithClickedButtonIndex:0 animated:YES];});
}#pragma mark -  HHHorizontalPagingViewDelegate
// 下方左右滑UIScrollView设置
- (NSInteger)numberOfSectionsInPagingView:(HHHorizontalPagingView *)pagingView {return 2;
}- (UIScrollView *)pagingView:(HHHorizontalPagingView *)pagingView viewAtIndex:(NSInteger)index{HomePageContentTableVC *vc = [[HomePageContentTableVC alloc] init];[self.contentVCArrays addObject:vc];[self addChildViewController:vc];vc.index = index;vc.fillHight = self.pagingView.segmentTopSpace + 45;return (UIScrollView *)vc.view;
}//headerView 设置
- (CGFloat)headerHeightInPagingView:(HHHorizontalPagingView *)pagingView {return kHeaderTopHeight;
}- (UIView *)headerViewInPagingView:(HHHorizontalPagingView *)pagingView {return self.headerView;
}- (void)but1Click{NSLog(@"%s",__func__);[self showText:@"but1Click"];
}- (void)but2Click{NSLog(@"%s",__func__);[self showText:@"but2Click"];
}//segmentButtons
- (CGFloat)segmentHeightInPagingView:(HHHorizontalPagingView *)pagingView {return 45.;
}- (NSArray<UIButton*> *)segmentButtonsInPagingView:(HHHorizontalPagingView *)pagingView {NSMutableArray *buttonArray = [NSMutableArray array];for(int i = 0; i < 2; i++) {UIButton *segmentButton = [UIButton buttonWithType:UIButtonTypeCustom];[segmentButton setBackgroundImage:[UIImage imageNamed:@"Home_title_line"] forState:UIControlStateNormal];[segmentButton setBackgroundImage:[UIImage imageNamed:@"Home_title_line_select"] forState:UIControlStateSelected];NSString *str = i == 0 ? @"帖子" : @"评论";[segmentButton setTitle:str forState:UIControlStateNormal];[segmentButton setTitleColor:GrayColor(54) forState:UIControlStateNormal];[segmentButton setTitleColor:kThemeColor forState:UIControlStateSelected];segmentButton.adjustsImageWhenHighlighted = NO;[buttonArray addObject:segmentButton];}self.buttonArray = [NSMutableArray arrayWithArray:buttonArray];return [buttonArray copy];
}// 点击segment
- (void)pagingView:(HHHorizontalPagingView*)pagingView segmentDidSelected:(UIButton *)item atIndex:(NSInteger)selectedIndex{NSLog(@"%s",__func__);NSLog(@"将要显示的类别:%zd",selectedIndex);}- (void)pagingView:(HHHorizontalPagingView*)pagingView segmentDidSelectedSameItem:(UIButton *)item atIndex:(NSInteger)selectedIndex{NSLog(@"%s",__func__);}// 视图切换完成时调用
- (void)pagingView:(HHHorizontalPagingView*)pagingView didSwitchIndex:(NSInteger)aIndex to:(NSInteger)toIndex{NSLog(@"%s \n %tu  to  %tu",__func__,aIndex,toIndex);HomePageContentTableVC *contentTableVC = self.contentVCArrays[toIndex];//判断是否有网络Reachability *reach = [Reachability reachabilityForInternetConnection];NetworkStatus status = [reach currentReachabilityStatus];if(status == NotReachable)//无网,从数据库取出后赋值{[MBProgressHUD showError:@"当前网络不佳!"];}else//请求数据{//NSMutableArray *temp = [NSMutableArray array];for (int i=0; i<10; i++) {NSString *str = [NSString stringWithFormat:@"数据:%zd",i];[temp addObject:str];}//刷新contentTableVC.modelArray = [NSArray arrayWithArray:temp];}}- (void)pagingView:(HHHorizontalPagingView *)pagingView scrollTopOffset:(CGFloat)offset {if (offset >= -kNavBarHeight - 45) { // > 0 代表已经只顶了return;}CGFloat fm = self.pagingView.pullOffset - kNavBarHeight - 45;CGFloat fz = - kNavBarHeight - 45 - offset;float al = 1.0 - fz / fm;al = al <= 0.05 ? 0 : al;al = al >= 0.95 ? 1 : al;//       NSLog(@"__ %f  __  %f __ %lf",offset,self.pagingView.pullOffset, al);[self.navView changeAlpha:al];
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

创建控制器HomePageContentTableVC.h


//
//  HomePageContentTableVC.h
//  lingfo
//
//  Created by limin on 16/12/28.
//  Copyright © 2016年 anxin. All rights reserved.
//#import <UIKit/UIKit.h>@interface HomePageContentTableVC : UIViewController@property (nonatomic, strong, readonly) UITableView *tableView;
@property (nonatomic, assign) NSInteger index;
@property (nonatomic, assign) BOOL allowPullToRefresh;
@property (nonatomic, assign) CGFloat pullOffset;
@property (nonatomic, assign) CGFloat fillHight;  //segmentButtons + segmentTopSpace/* 数据模型 */
@property(nonatomic,strong)NSArray *modelArray;@end
创建控制器HomePageContentTableVC.m

//
//  HomePageContentTableVC.m
//  lingfo
//
//  Created by limin on 16/12/28.
//  Copyright © 2016年 anxin. All rights reserved.
//#import "HomePageContentTableVC.h"
#import "HHHorizontalPagingView.h"
#import "UIView+WhenTappedBlocks.h"#import "SVPullToRefresh.h"
#import "LMMyHomeController.h"
@interface HomePageContentTableVC()<UITableViewDelegate,UITableViewDataSource>@property (nonatomic, strong) UITableView *homePageTableView;@end@implementation HomePageContentTableVC
#pragma mark - 懒加载- (void)loadView{self.homePageTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];self.homePageTableView.dataSource = self;self.homePageTableView.delegate = self;[self.homePageTableView setSeparatorColor:GrayColor(231)];self.homePageTableView.backgroundColor = kBgColor;self.view = self.homePageTableView;//去掉底部多余的表格线[self.homePageTableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];[self solvePlainSeparatorStyle];[self setupMsgRefresh];
}
-(void)solvePlainSeparatorStyle
{//1.解决Cell下面的线左边15像素空白问题if ([self.homePageTableView respondsToSelector:@selector(setSeparatorInset:)]){[self.homePageTableView setSeparatorInset:UIEdgeInsetsZero];}if ([self.homePageTableView respondsToSelector:@selector(setLayoutMargins:)]){[self.homePageTableView setLayoutMargins:UIEdgeInsetsZero];}
}
/** 添加刷新控件*/
-(void)setupMsgRefresh
{//下拉刷新控件self.homePageTableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewDynamic)];[self loadNewDynamic];//自定义footerself.homePageTableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreDynamic)];}
-(void)loadNewDynamic
{[self.homePageTableView.mj_footer endRefreshing];//无网络状态也需要赋值(之前保存在偏好设置里面的数据)Reachability *reach = [Reachability reachabilityForInternetConnection];NetworkStatus status = [reach currentReachabilityStatus];if (status == NotReachable) {//无网络[MBProgressHUD showError:@"请检查网络后重试"];}else//网络请求{NSMutableArray *temp = [NSMutableArray array];for (int i=0; i<10; i++) {NSString *str = [NSString stringWithFormat:@"数据:%zd",i];[temp addObject:str];}//结束刷新状态[self.homePageTableView.mj_header endRefreshing];//刷新控件self.modelArray = temp;//控制footer的状态if (temp.count==0) {//没有更多数据了self.homePageTableView.mj_footer.hidden = YES;}else if (temp.count < 10) {//全部加载完毕[self.homePageTableView.mj_footer endRefreshingWithNoMoreData];}}}
-(void)loadMoreDynamic
{[self.homePageTableView.mj_header endRefreshing];//无网络状态也需要赋值(之前保存在偏好设置里面的数据)Reachability *reach = [Reachability reachabilityForInternetConnection];NetworkStatus status = [reach currentReachabilityStatus];if (status == NotReachable) {//无网络[MBProgressHUD showError:@"请检查网络后重试"];}else//网络请求{NSMutableArray *totalArray = [NSMutableArray arrayWithArray:self.modelArray];NSMutableArray *tempArray = [NSMutableArray array];for (int i=0; i<10; i++) {NSString *str = [NSString stringWithFormat:@"数据:%zd",i];[tempArray addObject:str];}//控制footer的状态if (tempArray.count < 10) {//全部加载完毕[self.homePageTableView.mj_footer endRefreshingWithNoMoreData];}else{//结束刷新状态[self.homePageTableView.mj_footer endRefreshing];}//最新评论[totalArray addObjectsFromArray:tempArray];self.modelArray = totalArray;}
}
-(void)setModelArray:(NSArray *)modelArray
{_modelArray = modelArray;[self.homePageTableView reloadData];
}
- (void)viewDidLoad{[super viewDidLoad];if (!self.allowPullToRefresh) {return;}[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(takeBack:) name:kHHHorizontalTakeBackRefreshEndNotification object:self.tableView];__weak typeof(self)weakSelf = self;[self.tableView addPullToRefreshOffset:self.pullOffset withActionHandler:^{[[NSNotificationCenter defaultCenter] postNotificationName:kHHHorizontalScrollViewRefreshStartNotification object:weakSelf.tableView userInfo:nil];dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{[weakSelf.tableView.pullToRefreshView stopAnimating];[[NSNotificationCenter defaultCenter] postNotificationName:kHHHorizontalScrollViewRefreshEndNotification object:weakSelf.tableView userInfo:nil];});}];
}- (void)takeBack:(NSNotification *)noti{[self.tableView.pullToRefreshView stopAnimating:NO];
}- (void)dealloc{NSLog(@"%s",__func__);
}#pragma mark - UITableViewDataSource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *cellid = @"cellid";UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid];if (!cell) {cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellid];cell.textLabel.textColor = kThemeColor;}cell.textLabel.text = [NSString stringWithFormat:@"%@%@",self.index?@"评论":@"帖子",self.modelArray[indexPath.row]];return cell;
}- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return 1;
}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {self.homePageTableView.mj_footer.hidden = (self.modelArray.count == 0);if (self.modelArray.count < 10 && self.modelArray.count > 0) {//全部加载完毕[self.homePageTableView.mj_footer endRefreshingWithNoMoreData];}return self.modelArray.count;}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {return 80;}#pragma mark - <点击进去详情页>
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{[self.homePageTableView deselectRowAtIndexPath:indexPath animated:YES];}- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{return 0.0001;
}- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{// 通过最后一个 Footer 来补高度if (section == [self numberOfSectionsInTableView:tableView] - 1) {return [self automaticHeightForTableView:tableView];}return 0.0001;
}- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{UIView *view = [[UIView alloc] init];view.backgroundColor = kBgColor;return view;
}- (CGFloat)automaticHeightForTableView:(UITableView *)tableView{// 36 是 segmentButtons 的高度 20 是segmentTopSpace的高度CGFloat height = self.fillHight;NSInteger section = [tableView.dataSource numberOfSectionsInTableView:tableView];for (int i = 0; i < section; i ++) {if ([tableView.delegate respondsToSelector:@selector(tableView:heightForHeaderInSection:)]) {height += [tableView.delegate tableView:tableView heightForHeaderInSection:i];}NSInteger row = [tableView.dataSource tableView:tableView numberOfRowsInSection:i];for (int j= 0 ; j < row; j++) {NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];if ([tableView.delegate respondsToSelector:@selector(tableView:heightForRowAtIndexPath:)]) {height += [tableView.delegate tableView:tableView heightForRowAtIndexPath:indexPath];}if (height >= tableView.frame.size.height) {return 0.0001;}}if (i != section - 1) {if ([tableView.delegate respondsToSelector:@selector(tableView:heightForFooterInSection:)]) {height += [tableView.delegate tableView:tableView heightForFooterInSection:i];}}}if (height >= tableView.frame.size.height) {return 0.0001;}return tableView.frame.size.height - height;
}
@end


详细项目链接:Github地址: https://github.com/MinLee6/WeiboUserHomePage


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251361.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

抽象轻松JavaScript

想象一样&#xff0c;现在有一个苹果&#xff0c;两个苹果&#xff0c;一箱苹果在你面前 看&#xff0c;上面的三种苹果&#xff0c;&#xff08;我写的是苹果就是苹果&#xff09; 语境1 例如你现在要搬运苹果&#xff01; 那么现在上面有苹果&#xff0c;一个&#xff0c;两…

前端知识基础大全(HTML5+CSS3)

HTML5CSS3 一、HTML入门 &#xff08;一&#xff09;web发展历 蒂姆伯纳斯李 1989年 提出了web理念 1990年 原始浏览器 HTML —>网站 1991年 w3c组织 (规范组织) web1.0时代 开始 特点: 用户只是阅读者 代表: 网易 搜狐 新浪 1995年 布兰登艾奇 javascript 交互 we…

树与二叉树理论(知识基础)

树与二叉树理论 文章目录 树与二叉树理论1.树的概念与结构2.二叉树的概念与结构3.二叉树的存储结构 1.树的概念与结构 1.树的概念&#xff1a;树是一种非线性的数据结构&#xff0c;它是由n个或0个有限结点组成一个具有层次关系的集合 注意&#xff1a;树形结构中&#xff0c;…

二月券商金工精选

✦研报目录✦ ✦简述✦ 按发布时间排序 中信期货 组合优化专题&#xff08;一&#xff09;&#xff1a;截面回归与因子正交的二重奏——【中信期货金融工程】 发布日期&#xff1a;2023-02-01 关键词&#xff1a;期货、截面回归、因子正交 主要内容&#xff1a;本报告处理“…

申万宏源证券选用Itiviti的技术作ETF期权做市

-Itiviti在中国拥有大量及多元化的客户群 上海2018年8月21日电 /美通社/ -- 全球领先的多种资产交易技术与金融基础设施供应商 Itiviti 今天宣布&#xff0c;中国其中一间领先的证券行申万宏源证券有限公司&#xff08;简称「申万宏源」&#xff09;已经选用 Itiviti 的做市解…

财经数据----同花顺技术选股,附代码

因为我最近在学习量化框架pyalgotrade比较忙&#xff0c;所以我写文章的时间比较少&#xff0c;因为白天要上课比较忙&#xff0c;所以我介绍一些有意义的数据。比如同花顺财经的技术选股。我们打开浏览器&#xff0c;搜搜同花顺财经进入数据我们看到数据中心有一个技术选股数据…

失传百年的致富经典(一):投资真经(股票,债券,基金)

能帮助你提升认知&#xff0c;是我创作的最大动力 点赞收藏评论 (1)普盲: 炒股&#xff0c;炒的就是股票&#xff0c;股票是由股份公司发行的所有权凭证&#xff0c;是股份公司为募集资金而发行给各个股东作为持股凭证并借以取得利息和红利的一种有价证券。例如: 你买入了100股…

公募基金历史数据基础分析教程

近年来&#xff0c;国内的公募基金处于高速发展阶段&#xff0c;对于基金数据的分析需求也越来越多。本教程以公募基金公开市场数据和历史净值数据的基础分析作为案例&#xff0c;介绍一些关于基金数据的基础概念和 DolphinDB 时序数据库在时间序列数据分析上的一些基础范式和方…

一、版本控制

1、什么是版本控制 1.1、版本控制的概念 版本控制&#xff08;Revision control&#xff09;是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史&#xff0c;方便查看更改历史记录&#xff0c;备份以便恢复以前的版本的软件工程技术。 1.2、版本控制的作用…

设计模式六大原则的理解

本文参考&#xff1a; 设计模式简介 | 菜鸟教程 (runoob.com) 六大设计原则之依赖倒置原则&#xff08;DIP&#xff09; - 简书 (jianshu.com) 设计模式的六大原则有&#xff1a; 1、开闭原则&#xff08;Open Close Principle&#xff09; 开闭原则的意思是&#xff1a;对扩…

苹果手机如何进行语音转文字的操作?

不知道大家有没有发现苹果手机中的很多应用与安卓版本的手机是不一样的&#xff0c;现在使用苹果手机的也越来越多了&#xff0c;今天小编给大家分享一种在苹果手机中如何进行语音转文字的操作。 第一步&#xff1a;首先我们需要在APP Store下载一款录音转文字助手。 第二步&am…

华为手机坏了数据怎么导出_手机视频怎么导出音频?

原标题&#xff1a;手机视频怎么导出音频&#xff1f; 手机上视频怎么提取音频&#xff0c;用什么软件提取视频原音&#xff1f;视频转mp3格式转换器&#xff0c;如何批量从视频里面提取音频&#xff1f;苹果怎么提取视频声音,怎么把视频转成mp3&#xff1f;我们在浏览视频的时…

怎么把录音导入库乐队_库乐队导入电脑版 苹果库乐队怎么导入歌

如何在库乐队制作音乐&#xff1f; 准备工具&#xff1a; 库乐队软件 具体步骤&#xff1a; 1、打开库乐队软件主页&#xff0c;在主页用手指左右滑动切换乐器&#xff0c;选择想要的乐器即可。2、选择好想要乐器后&#xff0c;在页面的上方会出现控制按钮&#xff0c;点击红色…

苹果库乐队怎么玩_苹果上的库乐队,极其强大精美的录音神器!

文 | 刘星文 ​ 库乐队是苹果设备上完全免费的音乐制作软件,既能制作音乐,剪辑音频,又能录音,对于内容创作者来说,非常有用。 我第一次使用库乐队的时候,就被这个软件精致的界面惊艳了。 录音 在做视频的时候,声音非常重要,很多短片画面拍的很好,可声音处理不怎么 好,…

XMind 2021mac苹果手机电脑端 专业版思维导图

xmind 2021中文版是目前互联网上一款最优秀最专业的思维导图软件&#xff0c;该软件可以将脑中的源源不断涌现的想法完美的展现出来&#xff0c;其思维导图与其他导图图表等更是简单易用&#xff0c;吸引着人们的眼球。 XMind思维导图&#xff0c;非常出名的思维导图、头脑风暴…

手机录音转文字怎么才快速?1分钟学会这2个方法,一键语音转文字

录音转文字是一种快速记录方式&#xff0c;使用这种方法能都非常快速的完成会议记录、演讲采访等工作。 而语音转文字用手机就能够轻松的完成&#xff0c;笔者在这分享2个非常简单的语音转文字方法&#xff0c;1分钟就能学会&#xff0c;让你每天准时下班不是梦&#xff01; …

苹果库乐队怎么玩_iPhone实用技巧:怎么将抖音上的背景音乐制作成手机铃声

抖音已经成为目前热门的APP,上面有很多优秀的音乐作品。当我们遇上了喜欢的音乐,怎么做成手机铃声呢? 需要安装的APP 1.抖音短视频APP 2.库乐队GarageBand APP(苹果自带,如果删除了,可重新在App Store里下载) 3.音乐剪辑APP(在App Store里下载) 详细步骤 1.在抖音APP里面找…

苹果手机左上角的数字怎么弄_手把手教你把抖音视频音乐设置为手机铃声。

2019年11月已经更新到新文章内&#xff1a; 和浦&#xff1a;iPhone手机设置铃声简易教程&#xff08;iOS12-iOS13&#xff09;​zhuanlan.zhihu.com 2019年4月10日更新&#xff1a; 随着ios12系统的到来&#xff0c;手机设置铃声更加便捷&#xff0c;接下来就来教大家更为简单…

手机便签如何导出和备份?

手机便签是很多网友日常生活和工作中用来记录日程、重要信息、琐碎事项的一种记事工具&#xff0c;用好便签工具&#xff0c;可以大大提高我们的办事效率&#xff0c;为生活和工作带来很多便利。有一些手机便签用户表示自己便签中保存的信息非常多&#xff0c;这时候就需要把便…

索尼录音笔怎么导出录音内容_无需录音笔,苹果手机自带3个会议记录神器,没用过有些可惜了...

因为经常开会时都会用到"录音笔"功能&#xff0c;尤其是一些比较重要的会议时&#xff0c;因为会议结束老板总会说。 小王&#xff0c;今天的会议内容整理一份&#xff0c;下班之前发到群里面。 重听录音内容并整理&#xff0c;实在太慢了&#xff0c;于是经过多次会…