From dfe44226fca2a7e4a8ca070725c064286a3b4a80 Mon Sep 17 00:00:00 2001 From: cczufish <718780261@qq.com> Date: Thu, 20 May 2021 17:03:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4xib=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8Cuicollectionview=20=E6=94=B9=E4=B8=BA=E7=BA=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BD=A2=E5=BC=8F=20=EF=BC=9BRemove=20the=20?= =?UTF-8?q?xib=20file=20and=20change=20uicollectionview=20to=20pure=20code?= =?UTF-8?q?=20form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RouletteViewDemo.xcodeproj/project.pbxproj | 19 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 40050 bytes .../xcschemes/xcschememanagement.plist | 14 + .../AppIcon.appiconset/Contents.json | 53 ++++ RouletteViewDemo/RVAppDelegate.m | 2 +- RouletteViewDemo/RVViewController.m | 19 +- .../en.lproj/RVViewController.xib | 239 ------------------ 8 files changed, 101 insertions(+), 253 deletions(-) create mode 100644 RouletteViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 RouletteViewDemo.xcodeproj/project.xcworkspace/xcuserdata/yushuhui.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 RouletteViewDemo.xcodeproj/xcuserdata/yushuhui.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 RouletteViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 RouletteViewDemo/en.lproj/RVViewController.xib diff --git a/RouletteViewDemo.xcodeproj/project.pbxproj b/RouletteViewDemo.xcodeproj/project.pbxproj index 248da92..a2d8f22 100644 --- a/RouletteViewDemo.xcodeproj/project.pbxproj +++ b/RouletteViewDemo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 5BDE14772656580A0063D824 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5BDE14762656580A0063D824 /* Assets.xcassets */; }; 8EC103B516F270F700BAC998 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC103B416F270F700BAC998 /* UIKit.framework */; }; 8EC103B716F270F700BAC998 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC103B616F270F700BAC998 /* Foundation.framework */; }; 8EC103B916F270F700BAC998 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC103B816F270F700BAC998 /* CoreGraphics.framework */; }; @@ -17,7 +18,6 @@ 8EC103C916F270F700BAC998 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EC103C816F270F700BAC998 /* Default@2x.png */; }; 8EC103CB16F270F700BAC998 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EC103CA16F270F700BAC998 /* Default-568h@2x.png */; }; 8EC103CE16F270F700BAC998 /* RVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC103CD16F270F700BAC998 /* RVViewController.m */; }; - 8EC103D116F270F700BAC998 /* RVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8EC103CF16F270F700BAC998 /* RVViewController.xib */; }; 8EC1045616F277DA00BAC998 /* RVCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC1045516F277DA00BAC998 /* RVCollectionViewCell.m */; }; 8EC1045A16F27AE500BAC998 /* RVCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EC1045916F27AE500BAC998 /* RVCollectionViewLayout.m */; }; 8EC1045D16F2953F00BAC998 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EC1045C16F2953F00BAC998 /* QuartzCore.framework */; }; @@ -37,6 +37,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 5BDE14762656580A0063D824 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 8EC103B116F270F700BAC998 /* RouletteViewDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RouletteViewDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8EC103B416F270F700BAC998 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 8EC103B616F270F700BAC998 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -52,7 +53,6 @@ 8EC103CA16F270F700BAC998 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; 8EC103CC16F270F700BAC998 /* RVViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RVViewController.h; sourceTree = ""; }; 8EC103CD16F270F700BAC998 /* RVViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RVViewController.m; sourceTree = ""; }; - 8EC103D016F270F700BAC998 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/RVViewController.xib; sourceTree = ""; }; 8EC1045416F277DA00BAC998 /* RVCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RVCollectionViewCell.h; sourceTree = ""; }; 8EC1045516F277DA00BAC998 /* RVCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RVCollectionViewCell.m; sourceTree = ""; }; 8EC1045816F27AE500BAC998 /* RVCollectionViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RVCollectionViewLayout.h; sourceTree = ""; }; @@ -127,7 +127,7 @@ 8EC1045516F277DA00BAC998 /* RVCollectionViewCell.m */, 8EC1045816F27AE500BAC998 /* RVCollectionViewLayout.h */, 8EC1045916F27AE500BAC998 /* RVCollectionViewLayout.m */, - 8EC103CF16F270F700BAC998 /* RVViewController.xib */, + 5BDE14762656580A0063D824 /* Assets.xcassets */, 8EC103BB16F270F700BAC998 /* Supporting Files */, ); path = RouletteViewDemo; @@ -203,6 +203,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 8EC103A816F270F700BAC998; @@ -223,8 +224,8 @@ 8EC103BF16F270F700BAC998 /* InfoPlist.strings in Resources */, 8EC103C716F270F700BAC998 /* Default.png in Resources */, 8EC103C916F270F700BAC998 /* Default@2x.png in Resources */, + 5BDE14772656580A0063D824 /* Assets.xcassets in Resources */, 8EC103CB16F270F700BAC998 /* Default-568h@2x.png in Resources */, - 8EC103D116F270F700BAC998 /* RVViewController.xib in Resources */, 8ECAB21716F5512D002B90C2 /* 10.png in Resources */, 8ECAB21816F5512D002B90C2 /* 11.png in Resources */, 8ECAB21916F5512D002B90C2 /* 12.png in Resources */, @@ -267,14 +268,6 @@ name = InfoPlist.strings; sourceTree = ""; }; - 8EC103CF16F270F700BAC998 /* RVViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - 8EC103D016F270F700BAC998 /* en */, - ); - name = RVViewController.xib; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -337,6 +330,7 @@ 8EC103D516F270F700BAC998 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + DEVELOPMENT_TEAM = ""; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "RouletteViewDemo/RouletteViewDemo-Prefix.pch"; INFOPLIST_FILE = "RouletteViewDemo/RouletteViewDemo-Info.plist"; @@ -348,6 +342,7 @@ 8EC103D616F270F700BAC998 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + DEVELOPMENT_TEAM = ""; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "RouletteViewDemo/RouletteViewDemo-Prefix.pch"; INFOPLIST_FILE = "RouletteViewDemo/RouletteViewDemo-Info.plist"; diff --git a/RouletteViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/RouletteViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/RouletteViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/RouletteViewDemo.xcodeproj/project.xcworkspace/xcuserdata/yushuhui.xcuserdatad/UserInterfaceState.xcuserstate b/RouletteViewDemo.xcodeproj/project.xcworkspace/xcuserdata/yushuhui.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..3ad5c36dcd792e44b633a4f35f0f702f64076aed GIT binary patch literal 40050 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 literal 0 HcmV?d00001 diff --git a/RouletteViewDemo.xcodeproj/xcuserdata/yushuhui.xcuserdatad/xcschemes/xcschememanagement.plist b/RouletteViewDemo.xcodeproj/xcuserdata/yushuhui.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..8c622c2 --- /dev/null +++ b/RouletteViewDemo.xcodeproj/xcuserdata/yushuhui.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + RouletteViewDemo.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/RouletteViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/RouletteViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8121323 --- /dev/null +++ b/RouletteViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/RouletteViewDemo/RVAppDelegate.m b/RouletteViewDemo/RVAppDelegate.m index 451945b..cc3973c 100644 --- a/RouletteViewDemo/RVAppDelegate.m +++ b/RouletteViewDemo/RVAppDelegate.m @@ -16,7 +16,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. - self.viewController = [[RVViewController alloc] initWithNibName:@"RVViewController" bundle:nil]; + self.viewController = [[RVViewController alloc] init]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; return YES; diff --git a/RouletteViewDemo/RVViewController.m b/RouletteViewDemo/RVViewController.m index 1554073..db2c94c 100644 --- a/RouletteViewDemo/RVViewController.m +++ b/RouletteViewDemo/RVViewController.m @@ -10,9 +10,11 @@ #import "RVCollectionViewCell.h" #import "RVCollectionViewLayout.h" + + @interface RVViewController () -@property (nonatomic, weak) IBOutlet UICollectionView * collectionView; +@property (nonatomic, weak) UICollectionView * collectionView; @property (nonatomic, strong) NSMutableArray * imagesArray; @property (nonatomic, strong) NSMutableArray * imageNamesArray; @property (nonatomic, strong) RVCollectionViewLayout * collectionViewLayout; @@ -25,6 +27,7 @@ - (void)viewDidLoad { [super viewDidLoad]; [self initImages]; + [self initCollectionView]; [self.collectionView registerClass:[RVCollectionViewCell class] forCellWithReuseIdentifier:@"ItemIdentifier"]; self.collectionView.indicatorStyle = UIScrollViewIndicatorStyleWhite; @@ -33,6 +36,20 @@ - (void)viewDidLoad self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; } +- (void)initCollectionView { + CGRect rect=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 230); + _collectionViewLayout = [[RVCollectionViewLayout alloc] init]; + + UICollectionView *collectionView=[[UICollectionView alloc] initWithFrame:rect collectionViewLayout:_collectionViewLayout]; + collectionView.alwaysBounceHorizontal = YES; + collectionView.showsHorizontalScrollIndicator = NO; + collectionView.backgroundColor =[UIColor clearColor]; + collectionView.dataSource=self; + collectionView.delegate=self; + [self.view addSubview:collectionView]; + self.collectionView=collectionView; +} + #pragma mark - UICollectionViewDataSource - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView { diff --git a/RouletteViewDemo/en.lproj/RVViewController.xib b/RouletteViewDemo/en.lproj/RVViewController.xib deleted file mode 100644 index ebc005a..0000000 --- a/RouletteViewDemo/en.lproj/RVViewController.xib +++ /dev/null @@ -1,239 +0,0 @@ - - - - 1552 - 12D78 - 3084 - 1187.37 - 626.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBProxyObject - IBUICollectionView - IBUICollectionViewLayout - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 1314 - - - {{-20, 40}, {360, 310}} - - - - _NS:9 - NO - YES - YES - IBCocoaTouchFramework - YES - NO - 0.0 - 0.0 - - - - - - - {{0, 20}, {320, 548}} - - - - - 3 - MAA - - NO - - - IBUIScreenMetrics - - YES - - - - - - {320, 568} - {568, 320} - - - IBCocoaTouchFramework - Retina 4 Full Screen - 2 - - IBCocoaTouchFramework - - - - - - - collectionView - - - - 15 - - - - view - - - - 18 - - - - dataSource - - - - 16 - - - - delegate - - - - 17 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 6 - - - - - - - - 8 - - - - - - - - 19 - - - - - - - RVViewController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - RVCollectionViewLayout - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 19 - - - - - RVCollectionViewLayout - UICollectionViewFlowLayout - - IBProjectSource - ./Classes/RVCollectionViewLayout.h - - - - RVViewController - UIViewController - - collectionView - UICollectionView - - - collectionView - - collectionView - UICollectionView - - - - IBProjectSource - ./Classes/RVViewController.h - - - - UICollectionViewFlowLayout - UICollectionViewLayout - - IBProjectSource - ./Classes/UICollectionViewFlowLayout.h - - - - UICollectionViewLayout - NSObject - - IBProjectSource - ./Classes/UICollectionViewLayout.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - 2083 - -