Selaa lähdekoodia

修改xib上输入框增加删除按钮

Steven 6 kuukautta sitten
vanhempi
commit
2ac58cca44

+ 50 - 0
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/MergeAudioAnimation/KSSpectrumView.m

@@ -6,6 +6,7 @@
 //
 
 #import "KSSpectrumView.h"
+#import <Accelerate/Accelerate.h>
 
 @interface KSSpectrumView ()
 
@@ -110,6 +111,55 @@
 - (void)dealloc {
     NSLog(@"---- KSSpectrumView dealloc");
 }
+
+- (NSArray<NSNumber *> *)computeFFTWithPCMBuffer:(float *)pcmBuffer frameCount:(NSUInteger)frameCount {
+    NSUInteger log2n = log2(frameCount); // FFT 长度必须是 2 的幂
+    NSUInteger fftSize = 1 << log2n;    // 计算实际 FFT 点数
+    
+    // 创建 FFT 设置
+    FFTSetup fftSetup = vDSP_create_fftsetup(log2n, FFT_RADIX2);
+    if (!fftSetup) {
+        NSLog(@"FFT Setup failed");
+        return nil;
+    }
+
+    // 输入数据必须是复数形式,创建 SplitComplex 存储数据
+    DSPSplitComplex splitComplex;
+    float *real = malloc(sizeof(float) * fftSize / 2);
+    float *imag = malloc(sizeof(float) * fftSize / 2);
+    splitComplex.realp = real;
+    splitComplex.imagp = imag;
+    
+    // 填充输入数据并进行窗口处理(如 Hanning 窗口)
+    vDSP_ctoz((DSPComplex *)pcmBuffer, 2, &splitComplex, 1, fftSize / 2);
+    vDSP_hann_window(real, fftSize / 2, vDSP_HANN_NORM);
+
+    // 执行 FFT
+    vDSP_fft_zrip(fftSetup, &splitComplex, 1, log2n, FFT_FORWARD);
+
+    // 计算幅值(模长)
+    float *amplitudes = malloc(sizeof(float) * fftSize / 2);
+    vDSP_zvmags(&splitComplex, 1, amplitudes, 1, fftSize / 2);
+    
+    // 转换为 dB(可选)
+    float scale = 1.0 / (2.0 * fftSize); // 归一化
+    vDSP_vsmul(amplitudes, 1, &scale, amplitudes, 1, fftSize / 2);
+    vDSP_vdbcon(amplitudes, 1, &scale, amplitudes, 1, fftSize / 2, 0);
+
+    // 转换结果为 NSArray
+    NSMutableArray<NSNumber *> *result = [NSMutableArray arrayWithCapacity:fftSize / 2];
+    for (NSUInteger i = 0; i < fftSize / 2; i++) {
+        [result addObject:@(amplitudes[i])];
+    }
+
+    // 清理内存
+    free(real);
+    free(imag);
+    free(amplitudes);
+    vDSP_destroy_fftsetup(fftSetup);
+
+    return result;
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/MoreMusicPage/MorePageSearchView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -33,7 +33,7 @@
                                         <constraint firstAttribute="height" constant="16" id="yUb-l9-bpt"/>
                                     </constraints>
                                 </imageView>
-                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入歌曲关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Mx6-O3-EOH">
+                                <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入歌曲关键词" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Mx6-O3-EOH">
                                     <rect key="frame" x="34" y="0.0" width="268" height="34"/>
                                     <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                     <textInputTraits key="textInputTraits"/>

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/InstitutionModule/Home/View/TenantDarkSearhView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_12" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -23,7 +23,7 @@
                                 <constraint firstAttribute="height" constant="16" id="yeE-GL-98Q"/>
                             </constraints>
                         </imageView>
-                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入歌曲关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Dpu-mW-Jkm">
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入歌曲关键词" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Dpu-mW-Jkm">
                             <rect key="frame" x="34" y="0.0" width="333" height="34"/>
                             <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>

+ 3 - 3
KulexiuForStudent/KulexiuForStudent/Module/Chat/View/KSChatListSearchView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21679"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -19,7 +19,7 @@
                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="search_green" translatesAutoresizingMaskIntoConstraints="NO" id="BoO-sd-jlY">
                             <rect key="frame" x="12" y="9" width="15" height="16"/>
                         </imageView>
-                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="查找聊天记录" adjustsFontSizeToFit="NO" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-ZY-b4Y">
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="查找聊天记录" adjustsFontSizeToFit="NO" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="s9n-ZY-b4Y">
                             <rect key="frame" x="33" y="0.0" width="286" height="34"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Home/ArrangeCourse/View/HomeArrangeSortView.xib

@@ -79,7 +79,7 @@
                                 <action selector="searchAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="vsG-qb-3GM"/>
                             </connections>
                         </button>
-                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="搜索你喜欢的老师" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="QIy-bA-QSm">
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="搜索你喜欢的老师" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="QIy-bA-QSm">
                             <rect key="frame" x="34" y="0.0" width="207" height="34"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Mine/Homework/View/HomeworkSortView.xib

@@ -79,7 +79,7 @@
                                 <action selector="searchAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="sB8-ma-fAx"/>
                             </connections>
                         </button>
-                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入搜索关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ee5-sk-ANr">
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入搜索关键词" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="ee5-sk-ANr">
                             <rect key="frame" x="34" y="0.0" width="175.5" height="34"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
@@ -125,7 +125,7 @@
         </view>
     </objects>
     <resources>
-        <image name="search_green" width="16" height="16"/>
+        <image name="search_green" width="15" height="16"/>
         <image name="sort_down_grey" width="9" height="5"/>
     </resources>
 </document>

+ 1 - 1
KulexiuForStudent/KulexiuForStudent/Module/Mine/MineCourse/View/MyCourseSortView/MyCourseSearchView.xib

@@ -79,7 +79,7 @@
                                 <action selector="searchAction:" destination="iN0-l3-epB" eventType="touchUpInside" id="ouv-ni-pJU"/>
                             </connections>
                         </button>
-                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入搜索关键词" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZbY-Gz-MYd">
+                        <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入搜索关键词" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="ZbY-Gz-MYd">
                             <rect key="frame" x="34" y="0.0" width="207" height="34"/>
                             <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>

+ 8 - 8
KulexiuForStudent/KulexiuForStudent/Module/Mine/Setting/View/UserAuthBodyView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="23504" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23506"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,7 +17,7 @@
                     <rect key="frame" x="27" y="15" width="360" height="70"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="姓名" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nKZ-z7-YcX">
-                            <rect key="frame" x="0.0" y="2" width="37" height="25"/>
+                            <rect key="frame" x="0.0" y="2" width="36" height="25"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="25" id="6Ub-Ao-xiU"/>
                             </constraints>
@@ -25,7 +25,7 @@
                             <nil key="textColor"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入真实姓名" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3vY-NV-dp4">
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入真实姓名" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="3vY-NV-dp4">
                             <rect key="frame" x="0.0" y="27" width="360" height="43"/>
                             <fontDescription key="fontDescription" type="system" pointSize="16"/>
                             <textInputTraits key="textInputTraits" enablesReturnKeyAutomatically="YES"/>
@@ -56,7 +56,7 @@
                     <rect key="frame" x="27" y="100" width="360" height="70"/>
                     <subviews>
                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="证件号码" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JhR-Bf-KWc">
-                            <rect key="frame" x="0.0" y="2" width="73.5" height="25"/>
+                            <rect key="frame" x="0.0" y="2" width="71.5" height="25"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="25" id="mAP-Nm-lwZ"/>
                             </constraints>
@@ -64,7 +64,7 @@
                             <nil key="textColor"/>
                             <nil key="highlightedColor"/>
                         </label>
-                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入身份证号" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="JWP-XS-Fwe">
+                        <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入身份证号" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="JWP-XS-Fwe">
                             <rect key="frame" x="0.0" y="27" width="360" height="43"/>
                             <fontDescription key="fontDescription" type="system" pointSize="16"/>
                             <textInputTraits key="textInputTraits" keyboardType="alphabet"/>
@@ -121,13 +121,13 @@
                     </connections>
                 </button>
                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="我已阅读并同意《用户注册协议》" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gdT-Pm-kW0">
-                    <rect key="frame" x="58" y="263.5" width="184" height="15"/>
+                    <rect key="frame" x="58" y="263.5" width="171.5" height="15"/>
                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
                     <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cSr-tq-ags">
-                    <rect key="frame" x="116" y="256" width="126" height="30"/>
+                    <rect key="frame" x="116" y="256" width="113.5" height="30"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="30" id="aid-iZ-H39"/>
                     </constraints>

+ 2 - 2
KulexiuForStudent/KulexiuForStudent/Module/Mine/Works/View/MineWorkSortView.xib

@@ -36,8 +36,8 @@
                         </button>
                         <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入曲目名称" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="zBY-uY-xzS">
                             <rect key="frame" x="32" y="0.0" width="197" height="35"/>
-                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
-                            <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                            <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
                             <textInputTraits key="textInputTraits" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
                         </textField>
                     </subviews>