Selaa lähdekoodia

修改已知Bug

Bob 6 vuotta sitten
vanhempi
commit
f6999d4934

BIN
HappyJob/HappyJob.xcworkspace/xcuserdata/Bob.xcuserdatad/UserInterfaceState.xcuserstate


+ 1 - 2
HappyJob/HappyJob/Components/CustomControl/UIView/JobDetail_职位详情/HJJobDetailSelectiveBar.h

@@ -20,11 +20,10 @@ NS_ASSUME_NONNULL_BEGIN
 @end
 
 @interface HJJobDetailSelectiveBar : UIView
-@property (nonatomic, assign, getter=isScrolling) BOOL scrolling;
 @property (nonatomic, weak) id<HJJobDetailSelectiveBarDelegate> delegate;
 
 - (instancetype)initWithTitles:(NSArray *)titles;
-- (void)sendActionAtIndex:(NSUInteger)index;
+- (void)selectedAtIndex:(NSUInteger)index;
 
 @end
 

+ 1 - 2
HappyJob/HappyJob/Components/CustomControl/UIView/JobDetail_职位详情/HJJobDetailSelectiveBar.m

@@ -19,7 +19,6 @@
 
 - (instancetype)initWithTitles:(NSArray *)titles {
     if (self = [super init]) {
-        _scrolling = NO;
         _titleButtonArray = [NSMutableArray arrayWithCapacity:titles.count];
         for (NSUInteger i = 0; i < titles.count; i++) {
             NSString *title = titles[i];
@@ -35,7 +34,7 @@
     return self;
 }
 
-- (void)sendActionAtIndex:(NSUInteger)index {
+- (void)selectedAtIndex:(NSUInteger)index {
     UIButton *sender = [self.titleButtonArray objectAtIndex:index];
     for (UIButton *btn in self.titleButtonArray) {
         if (sender == btn) {

+ 33 - 35
HappyJob/HappyJob/JobList_工作列表信息/FullTime_全职工作/HJFullTimeDetailViewController.m

@@ -150,40 +150,6 @@
     }];
 }
 
-#pragma mark - UIScrollViewDelegate
-
-- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
-//    if (!self.segmentView.isScrolling) {
-//        CGFloat offsetY = scrollView.contentOffset.y;
-//        CGFloat baseInfoOffsetY = self.baseInfoView.frame.origin.y + self.baseInfoView.frame.size.height;
-//        CGFloat requireInfoOffsetY = self.requireInfoView.frame.origin.y + self.requireInfoView.frame.size.height;
-//        CGFloat otherInfoOffsetY = self.otherInfoView.frame.origin.y + self.otherInfoView.frame.size.height;
-//        CGFloat companyInfoOffsetY = self.companyInfoView.frame.origin.y + self.companyInfoView.frame.size.height;
-//
-//        if (offsetY < baseInfoOffsetY) {
-//            [self.segmentView sendActionAtIndex:0];
-//        } else if (offsetY > baseInfoOffsetY && offsetY < requireInfoOffsetY) {
-//            [self.segmentView sendActionAtIndex:1];
-//        } else if (offsetY > requireInfoOffsetY && offsetY < otherInfoOffsetY) {
-//            [self.segmentView sendActionAtIndex:2];
-//        } else if (offsetY > otherInfoOffsetY && offsetY < companyInfoOffsetY) {
-//            [self.segmentView sendActionAtIndex:3];
-//        } else {
-//            [self.segmentView sendActionAtIndex:3];
-//        }
-//    } else {
-//        self.segmentView.scrolling = NO;
-//    }
-    
-    //[self.segmentView sendActionAtIndex:4];
-    
-//    NSLog(@"offset = %@", NSStringFromCGPoint(scrollView.contentOffset));
-//    NSLog(@"self.baseInfoView.frame = %@", NSStringFromCGRect(self.baseInfoView.frame));
-//    NSLog(@"self.requireInfoView.frame = %@", NSStringFromCGRect(self.requireInfoView.frame));
-//    NSLog(@"self.otherInfoView.frame = %@", NSStringFromCGRect(self.otherInfoView.frame));
-//    NSLog(@"self.companyInfoView.frame = %@", NSStringFromCGRect(self.companyInfoView.frame));
-}
-
 #pragma mark - HJJobDetailForwardViewDelegate
 
 - (void)jobDetailForwardViewClicked:(HJJobDetailForwardView *)forwardView {
@@ -199,6 +165,18 @@
     }
 }
 
+#pragma mark - UIScrollViewDelegate
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
+    if (!decelerate) {
+        [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+    }
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
+    [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+}
+
 #pragma mark - HJJobDetailSelectiveBarDelegate
 
 - (void)jobDetailSelectiveBar:(HJJobDetailSelectiveBar *)selectiveBar didSelectAtIndex:(NSUInteger)index {
@@ -259,6 +237,26 @@
 
 #pragma mark - private methods
 
+- (void)segmentSelectedWithContentOffset:(CGPoint)contentOffset {
+    CGFloat offsetY = contentOffset.y;
+    CGFloat baseInfoOffsetY = self.baseInfoView.frame.origin.y;
+    CGFloat requireInfoOffsetY = self.requireInfoView.frame.origin.y;
+    CGFloat otherInfoOffsetY = self.otherInfoView.frame.origin.y;
+    CGFloat companyInfoOffsetY = self.companyInfoView.frame.origin.y;
+    
+    if (offsetY < baseInfoOffsetY) {
+        [self.segmentView selectedAtIndex:0];
+    } else if (offsetY > baseInfoOffsetY && offsetY < requireInfoOffsetY) {
+        [self.segmentView selectedAtIndex:1];
+    } else if (offsetY > requireInfoOffsetY && offsetY < otherInfoOffsetY) {
+        [self.segmentView selectedAtIndex:2];
+    } else if (offsetY > otherInfoOffsetY && offsetY < companyInfoOffsetY) {
+        [self.segmentView selectedAtIndex:3];
+    } else {
+        [self.segmentView selectedAtIndex:3];
+    }
+}
+
 #pragma mark - getters and setters
 
 - (HJPositionDetailDataBox *)detailDataBox {
@@ -284,7 +282,7 @@
         _detailView.scrollLayoutView.delegate = self;
         _detailView.APIManager = self.detailAPIManager;
         _detailView.dataBox = self.detailDataBox;
-//        _detailView.scrollLayoutView.scrollView.delegate = self;
+        _detailView.scrollLayoutView.scrollView.delegate = self;
     }
     return _detailView;
 }

+ 31 - 1
HappyJob/HappyJob/JobList_工作列表信息/PartTime_兼职工作/HJPartTimeDetailViewController.m

@@ -19,7 +19,7 @@
 #import "HJPositionDetailModel.h"
 #import "UIButton+HJTagButton.h"
 
-@interface HJPartTimeDetailViewController () <HJJobDetailSelectiveBarDelegate, HJJobDetailForwardViewDelegate, FBScrollLayoutViewDelegate, HJPositionDetailViewDelegate, FBFlowLayoutDelegate, FBFlowLayoutDataSource>
+@interface HJPartTimeDetailViewController () <HJJobDetailSelectiveBarDelegate, HJJobDetailForwardViewDelegate, FBScrollLayoutViewDelegate, HJPositionDetailViewDelegate, FBFlowLayoutDelegate, FBFlowLayoutDataSource, UIScrollViewDelegate>
 @property (nonatomic, strong, readwrite) HJPositionDetailView *detailView;
 @property (nonatomic, strong) HJGetPositionDetailAPIManager *detailAPIManager;
 @property (nonatomic, strong) HJPositionDetailDataBox *detailDataBox;
@@ -175,6 +175,18 @@
     return tagButton;
 }
 
+#pragma mark - UIScrollViewDelegate
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
+    if (!decelerate) {
+        [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+    }
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
+    [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+}
+
 #pragma mark - HJJobDetailSelectiveBarDelegate
 
 - (void)jobDetailSelectiveBar:(HJJobDetailSelectiveBar *)selectiveBar didSelectAtIndex:(NSUInteger)index {
@@ -240,6 +252,23 @@
 
 #pragma mark - private methods
 
+- (void)segmentSelectedWithContentOffset:(CGPoint)contentOffset {
+    CGFloat offsetY = contentOffset.y;
+    CGFloat baseInfoOffsetY = self.baseInfoView.frame.origin.y;
+    CGFloat requireInfoOffsetY = self.requireInfoView.frame.origin.y;
+    CGFloat companyInfoOffsetY = self.companyInfoView.frame.origin.y;
+    
+    if (offsetY < baseInfoOffsetY) {
+        [self.segmentView selectedAtIndex:0];
+    } else if (offsetY > baseInfoOffsetY && offsetY < requireInfoOffsetY) {
+        [self.segmentView selectedAtIndex:1];
+    } else if (offsetY > requireInfoOffsetY && offsetY < companyInfoOffsetY) {
+        [self.segmentView selectedAtIndex:2];
+    } else {
+        [self.segmentView selectedAtIndex:2];
+    }
+}
+
 #pragma mark - getters and setters
 
 - (HJPositionDetailDataBox *)detailDataBox {
@@ -265,6 +294,7 @@
         _detailView.scrollLayoutView.delegate = self;
         _detailView.APIManager = self.detailAPIManager;
         _detailView.dataBox = self.detailDataBox;
+        _detailView.scrollLayoutView.scrollView.delegate = self;
     }
     return _detailView;
 }

+ 0 - 2
HappyJob/HappyJob/Join_拼工/Apply_申请拼工/HJJoinApplyViewController.m

@@ -242,8 +242,6 @@ NSString *const HJJoinApplySuccessNotification = @"HJJoinApplySuccessNotificatio
         self.detailAPIManager.positionType = self.positionType;
         self.detailAPIManager.groupID = self.groupID;
         [self.detailAPIManager start];
-        
-        [[NSNotificationCenter defaultCenter] postNotificationName:HJJoinApplySuccessNotification object:nil];
     }
 }
 

+ 34 - 1
HappyJob/HappyJob/Join_拼工/HJJoinDetailViewController.m

@@ -31,7 +31,7 @@
 #import "HJPositionDetailModel.h"
 #import "HJJoinJoinPanelViewController.h"
 
-@interface HJJoinDetailViewController () <FBScrollLayoutViewDelegate, HJJobDetailForwardViewDelegate, HJJobDetailSelectiveBarDelegate, HJJoinViewDelegate, HJJoinJoinPanelDelegate, HJJoinAllJoinPanelDelegate, FBAPIManagerInterceptor, FBAPIManagerDelegate>
+@interface HJJoinDetailViewController () <FBScrollLayoutViewDelegate, HJJobDetailForwardViewDelegate, HJJobDetailSelectiveBarDelegate, HJJoinViewDelegate, HJJoinJoinPanelDelegate, HJJoinAllJoinPanelDelegate, FBAPIManagerInterceptor, FBAPIManagerDelegate, UIScrollViewDelegate>
 @property (nonatomic, strong) UIView *titleView;
 @property (nonatomic, strong) UIView *titleTagView;
 @property (nonatomic, strong) UIView *salaryView;
@@ -260,6 +260,18 @@
     }
 }
 
+#pragma mark - UIScrollViewDelegate
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
+    if (!decelerate) {
+        [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+    }
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
+    [self segmentSelectedWithContentOffset:scrollView.contentOffset];
+}
+
 #pragma mark - HJJobDetailSelectiveBarDelegate
 
 - (void)jobDetailSelectiveBar:(HJJobDetailSelectiveBar *)selectiveBar didSelectAtIndex:(NSUInteger)index {
@@ -564,6 +576,26 @@
     [self.scrollLayoutView makeConstraints];
 }
 
+- (void)segmentSelectedWithContentOffset:(CGPoint)contentOffset {
+    CGFloat offsetY = contentOffset.y;
+    CGFloat baseInfoOffsetY = self.baseInfoView.frame.origin.y;
+    CGFloat requireInfoOffsetY = self.requireInfoView.frame.origin.y;
+    CGFloat otherInfoOffsetY = self.otherInfoView.frame.origin.y;
+    CGFloat companyInfoOffsetY = self.companyInfoView.frame.origin.y;
+    
+    if (offsetY < baseInfoOffsetY) {
+        [self.segmentView selectedAtIndex:0];
+    } else if (offsetY > baseInfoOffsetY && offsetY < requireInfoOffsetY) {
+        [self.segmentView selectedAtIndex:1];
+    } else if (offsetY > requireInfoOffsetY && offsetY < otherInfoOffsetY) {
+        [self.segmentView selectedAtIndex:2];
+    } else if (offsetY > otherInfoOffsetY && offsetY < companyInfoOffsetY) {
+        [self.segmentView selectedAtIndex:3];
+    } else {
+        [self.segmentView selectedAtIndex:3];
+    }
+}
+
 #pragma mark - getters and setters
 
 - (HJJoinDetailDataBox *)detailDataBox {
@@ -666,6 +698,7 @@
     if (_scrollLayoutView == nil) {
         _scrollLayoutView = [[FBScrollLayoutView alloc] init];
         _scrollLayoutView.delegate = self;
+        _scrollLayoutView.scrollView.delegate = self;
     }
     return _scrollLayoutView;
 }

+ 3 - 2
HappyJob/HappyJob/Me_我/Interview_面试邀请/HJInterviewDetailViewController.m

@@ -59,9 +59,9 @@
         make.right.equalTo(self.dateLabel.mas_left).with.offset(-5);
     }];
     [self.dateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.top.equalTo(self.positionLabel.mas_bottom).with.offset(8);
         make.right.equalTo(self.view).with.offset(-15);
-        make.bottom.equalTo(self.companyLabel);
-        make.width.mas_equalTo(90);
+        make.width.mas_equalTo(100);
     }];
     [self.lineH mas_makeConstraints:^(MASConstraintMaker *make) {
         make.top.equalTo(self.dateLabel.mas_bottom).with.offset(20);
@@ -135,6 +135,7 @@
         _positionLabel = [[UILabel alloc] init];
         _positionLabel.font = [UIFont systemFontOfSize:19];
         _positionLabel.textColor = [UIColor colorWithRed:34/255.0 green:34/255.0 blue:34/255.0 alpha:1.0];
+        _positionLabel.numberOfLines = 0;
         //_positionLabel.backgroundColor = [UIColor redColor];
     }
     return _positionLabel;