2016-06-24 14:12:25 bddzzw 阅读数 297

-(void)setCellHidden: (UITableView *)tableView

{

    UIView *view = [UIView new];

    

    view.backgroundColor = [UIColor clearColor];

    

    [tableView setTableFooterView:view];

}

当前的视图调用你需要隐藏的cell的tableview

2016-06-28 16:33:18 qq_27247497 阅读数 1579

首先判断点击评论按钮事件  和  回复评论事件(同时注册监听键盘出现和隐藏事件)

然后 获取到 所点击cell的坐标

然后 在键盘出来的时候计算所需要调整的高度


  //注册键盘出现NSNotification

    [[NSNotificationCenterdefaultCenter] addObserver:self

                                             selector:@selector(keyboardWillShow:)

                                                 name:UIKeyboardWillShowNotificationobject:nil];

    //注册键盘隐藏NSNotification

    [[NSNotificationCenterdefaultCenter] addObserver:self

                                             selector:@selector(keyboardWillHide:)

                                                 name:UIKeyboardWillHideNotificationobject:nil];


   


//cell的坐标


@property (nonatomic,assign)CGRect rectSelected;



            NSIndexPath * indexPath2 = [NSIndexPathindexPathForItem:index inSection:0];

            CGRect rectInTableView = [self.tableViewrectForRowAtIndexPath:indexPath2];

            self.rectSelected = [self.tableViewconvertRect:rectInTableViewtoView:[self.tableViewsuperview]];//转化为在self.view 上的坐标





#pragma mark

#pragma mark keyboardWillShow

- (void)keyboardWillShow:(NSNotification *)notification

{

    

    if (_KeySwitch) {

        

        return;

    }else{

    

        _KeySwitch =YES;

    }

    

    //[0](null) @"UIKeyboardFrameBeginUserInfoKey" : NSRect: {{0, 736}, {414, 293.66666666666674}}

    //    [1](null) @"UIKeyboardCenterEndUserInfoKey" : NSPoint: {207, 589.16666666666663}

    //    [2](null) @"UIKeyboardBoundsUserInfoKey" : NSRect: {{0, 0}, {414, 293.66666666666674}}

    //    [3](null) @"UIKeyboardFrameEndUserInfoKey" : NSRect: {{0, 442.33333333333326}, {414, 293.66666666666674}}

    //    [5](null) @"UIKeyboardCenterBeginUserInfoKey" : NSPoint: {207, 882.83333333333337}

    //    [4](null) @"UIKeyboardAnimationDurationUserInfoKey" : (double)0.25

    //    [6](null) @"UIKeyboardAnimationCurveUserInfoKey" : (long)7

    //    [7](null) @"UIKeyboardIsLocalUserInfoKey" : (int)1

    NSDictionary *userInfo = [notificationuserInfo];

    NSValue* aValue = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];//aValueNSConcreteValue * NSRect: {{0, 442.33333333333326}, {414, 293.66666666666674}}0x0000000136c0c4b0

    __block CGFloat keyboardHeight = [aValueCGRectValue].size.height;//keyboardHeightCGFloat 293.66666666666674

    CGRect keyboardRect = [aValueCGRectValue];//keyboardRectCGRect (origin = (x = 0, y = 0), size = (width = 8, height = 0))    keyboardRect CGRect(origin = (x = 0, y = 442.33333333333326), size = (width = 414, height = 293.66666666666674))

    keyboardRect = [self.viewconvertRect:keyboardRectfromView:nil];////rectview中转换到当前视图中,返回在当前视图中的rect

    

    CGFloat keyboardTop = keyboardRect.origin.y;//keyboardTopCGFloat 442.33333333333326

    CGRect newTextViewFrame =self.view.bounds;//newTextViewFrameCGRect (origin = (x = 0, y = 0), size = (width = 414, height = 442.33333333333326))     键盘上面文字区域的坐标

    newTextViewFrame.size.height = keyboardTop -self.view.bounds.origin.y;//上面文字的坐标 高度

    

    NSValue *animationDurationValue = [userInfoobjectForKey:UIKeyboardAnimationDurationUserInfoKey];//animationDurationNSTimeInterval 4.9406564584124654E-324

    NSTimeInterval animationDuration;

    [animationDurationValue getValue:&animationDuration];

    //history_Y_offset   btn转换成在self.view上的坐标

    CGFloat delta =self.rectSelected.origin.y + self.rectSelected.size.height - ([UIApplication sharedApplication].keyWindow.bounds.size.height - keyboardHeight-100);//deltaCGFloat -54.333333333333258

    

    --------------  计算tableview要偏移的距离   ----------

 


    CGPoint offset =self.tableView.contentOffset;//offsetCGPoint (x = 3.4540270524485753E-314, y = 2.1232730692355269E-314)   表视图的偏移量

    offset.y += delta;//offsetCGPoint (x = 0, y = -118.33333333333326)

    if (offset.y <0) {

        offset.y = -64;//offsetCGPoint (x = 0, y = -64)

    }

    [self.tableViewsetContentOffset:offset animated:YES];

}



#pragma mark

#pragma mark keyboardWillHide

- (void)keyboardWillHide:(NSNotification *)notification {

    

    

    NSValue *animationDurationValue = [notification.userInfoobjectForKey:UIKeyboardAnimationDurationUserInfoKey];

    NSTimeInterval animationDuration;

    [animationDurationValue getValue:&animationDuration];

    [UIViewanimateWithDuration:animationDurationanimations:^{

        //        [self.chatKeyBoard keyboardDownForComment];

        //        self.chatKeyBoard.placeHolder = nil;

    }];

}




2019-11-28 13:49:45 wangpengke 阅读数 63

**

ios中在cell中嵌套TableView

**

整理了工作用到的小demo,项目中有个地方用到了需要在cell中嵌套tableView,而且tableView还可以折叠隐藏,所以外层的尺寸是不确定的,tableView的尺寸也是不固定的,因为嵌套的tableView的数据项不固定,每个cell高度都根据内容调整高度,这里将嵌套的tableView设置成不可滚动的,尺寸就是所有cell的高度和。如果大家用得到,可以做个参考。

最近有朋友问,可不可以让嵌套的tableView滚动起来,也就是两个tableView都可以滑动。这样用户操作起来可能会有冲突,可能滑动内嵌的tableView时,外层的tableView也会跟着滑动,这样的体验不太好。我今天试了下这样做,区分开两者的滑动,避免滑动冲突,希望可以帮助网友。(其中内嵌的tableView可以设置成固定高度,这样数据多的话就可以滑动了)。效果图

源码地址:https://github.com/buyaodaohao/TableViewInCell

2016-03-21 12:45:05 u014220518 阅读数 3191
//MARK:隐藏多余的cell分割线
    func hildTableViewExtraCellLineHidden(tableView : UITableView){
        let view = UIView()
        view.backgroundColor = UIColor.clearColor()
        tableView.tableFooterView = view
        tableView.tableHeaderView = view
    }

iOS 隐藏多余的cell

阅读数 162

没有更多推荐了,返回首页