Ios 我加上“观察员”;contentSize“;当contentSize具有新值但在某些设备上崩溃时,更改帧

Ios 我加上“观察员”;contentSize“;当contentSize具有新值但在某些设备上崩溃时,更改帧,ios,objective-c,Ios,Objective C,我将“contentSize”的观察者添加到UITableView,代码如下: [self addObserver:_contentView forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil]; if ([keyPath isEqualToString:@"contentSize"]) { CGFloat topHeight = 0;

我将“contentSize”的观察者添加到UITableView,代码如下:

[self addObserver:_contentView forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
if ([keyPath isEqualToString:@"contentSize"]) {
        CGFloat topHeight = 0;
            if (_topPartView != nil) {
                topHeight = _topPartView.frame.size.height;
            }
            _mininumDisplayHeight = MIN(_settedMin, _contentView.contentSize.height);
            _maxinumDisplayHeight = MIN(_settedMax, _contentView.contentSize.height+topHeight);
        if (_displayState == MaxDisPlay) {
            DDLogDebug(@"-contentSize displayMax-");
            _contentView.frame = [self maxFrame];
            [self resetTopWithContentFrame:[self maxFrame]];
        }else{
            DDLogDebug(@"-contentSize displayMin-");
            _contentView.frame = [self minFrame];
            [self resetTopWithContentFrame:[self minFrame]];
        }
    }
然后在contentSize更改时更改tableview的框架,如代码所示:

[self addObserver:_contentView forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
if ([keyPath isEqualToString:@"contentSize"]) {
        CGFloat topHeight = 0;
            if (_topPartView != nil) {
                topHeight = _topPartView.frame.size.height;
            }
            _mininumDisplayHeight = MIN(_settedMin, _contentView.contentSize.height);
            _maxinumDisplayHeight = MIN(_settedMax, _contentView.contentSize.height+topHeight);
        if (_displayState == MaxDisPlay) {
            DDLogDebug(@"-contentSize displayMax-");
            _contentView.frame = [self maxFrame];
            [self resetTopWithContentFrame:[self maxFrame]];
        }else{
            DDLogDebug(@"-contentSize displayMin-");
            _contentView.frame = [self minFrame];
            [self resetTopWithContentFrame:[self minFrame]];
        }
    }
以下是minFrame和maxFrame:

-(CGRect)minFrame{
    CGFloat ignore = 0;
    if (_topPartView != nil ) {
        ignore = _topPartView.frame.size.height;
    }
    NSString *valueStr = [NSString stringWithFormat:@"%.2f",self.bounds.size.height - _mininumDisplayHeight];
    return CGRectMake(0, valueStr.floatValue, self.bounds.size.width, _maxinumDisplayHeight - ignore);
}

-(CGRect)maxFrame{
    CGFloat ignore = 0;
    if (_topPartView != nil ) {
        ignore = _topPartView.frame.size.height;
    }
    
    NSString *valueStr = [NSString stringWithFormat:@"%.2f",self.bounds.size.height - (_maxinumDisplayHeight - ignore)];
    return CGRectMake(0, valueStr.floatValue, self.bounds.size.width, _maxinumDisplayHeight - ignore);
}
从Firebase Crashlytics来看,它似乎在某些设备上崩溃了数百次,但我无法复制它。以下是崩溃信息:

Crashed: com.apple.main-thread
0   libsystem_c.dylib              0x1abaf7620 __vfprintf + 40
1   libsystem_c.dylib              0x1abb1ae54 __v2printf + 396
2   libsystem_c.dylib              0x1abb016f4 _vsnprintf + 264
3   libsystem_c.dylib              0x1abaf680c snprintf_l + 32
4   CoreFoundation                 0x1abe34344 __CFStringAppendFormatCore + 8928
5   CoreFoundation                 0x1abe35920 _CFStringCreateWithFormatAndArgumentsAux2 + 156
6   Foundation                     0x1ac160d50 +[NSString stringWithFormat:] + 76
7   MyApp                          0x100554ccc -[CustomPullView minFrame] + 118 (CustomPullView.m:118)
8   MyApp                          0x100555884 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 275 (CustomPullView.m:275)
9   Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
10  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
11  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
12  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
13  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
14  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
15  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
16  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
17  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
18  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
19  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
20  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
21  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
22  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
23  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
24  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
25  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
26  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
27  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
28  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
29  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
30  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
31  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
32  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
33  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
34  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
35  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
36  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
37  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
38  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
39  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
40  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
41  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
42  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
43  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
44  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
45  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
46  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
47  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
48  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
49  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
50  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
51  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
52  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
53  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
54  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
55  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
56  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
57  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
58  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
59  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
60  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
61  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
62  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
63  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
64  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
65  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
66  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
67  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
68  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
69  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
70  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
71  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
72  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
73  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
74  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
75  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
76  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
77  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
78  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
79  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
80  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
81  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
82  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
83  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
84  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
85  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
86  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
87  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
88  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
89  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
90  Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
91  Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
92  Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
93  Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
94  UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
95  UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
96  UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
97  UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
98  MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
99  Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
100 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
101 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
102 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
103 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
104 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
105 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
106 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
107 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
108 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
109 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
110 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
111 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
112 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
113 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
114 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
115 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
116 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
117 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
118 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
119 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
120 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
121 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
122 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
123 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
124 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
125 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
126 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
127 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
128 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
129 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
130 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
131 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
132 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
133 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
134 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
135 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
136 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
137 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
138 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
139 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
140 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
141 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
142 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
143 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
144 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
145 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
146 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
147 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
148 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
149 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
150 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
151 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
152 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
153 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
154 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
155 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
156 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
157 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
158 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
159 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
160 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
161 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
162 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
163 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
164 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
165 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
166 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
167 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
168 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
169 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
170 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
171 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
172 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
173 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
174 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
175 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
176 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
177 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
178 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
179 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
180 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
181 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
182 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
183 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
184 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
185 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
186 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
187 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
188 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
189 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
190 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
191 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
192 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
193 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
194 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
195 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
196 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
197 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
198 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
199 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
200 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
201 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
202 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
203 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
204 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
205 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
206 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
207 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
208 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
209 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
210 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
211 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
212 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
213 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
214 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
215 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
216 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
217 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
218 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
219 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
220 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
221 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
222 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
223 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
224 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
225 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
226 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
227 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
228 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
229 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
230 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
231 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
232 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
233 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
234 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
235 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
236 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
237 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
238 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
239 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
240 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
241 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
242 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
243 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
244 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
245 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516
246 UIKitCore                      0x1b01aa160 -[UITableView _rectChangedWithNewSize:oldSize:] + 404
247 UIKitCore                      0x1b01aa75c -[UITableView setFrame:] + 256
248 MyApp                          0x100555894 -[CustomPullView observeValueForKeyPath:ofObject:change:context:] + 276 (CustomPullView.m:276)
249 Foundation                     0x1ac25b89c NSKeyValueNotifyObserver + 292
250 Foundation                     0x1ac25d924 NSKeyValueDidChange + 340
251 Foundation                     0x1ac25d398 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:maybeNewValuesDict:usingBlock:] + 632
252 Foundation                     0x1ac1a6f60 -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 72
253 Foundation                     0x1ac2597d0 _NSSetSizeValueAndNotify + 316
254 UIKitCore                      0x1b01abac0 -[UITableView setContentSize:skipContentOffsetAdjustment:] + 108
255 UIKitCore                      0x1b01839b8 -[UITableView _updateContentSizeSkippingContentOffsetAdjustment:] + 516

我找不到坠机的原因,也无法重现坠机过程。此崩溃主要出现在13.5以上的任何iOS设备上。有人能帮我吗?

可能
self.bounds.size.width
是NaN。添加
#包括
并将
CGRectMake(0,valueStr.floatValue,self.bounds.size.width,_maxinumDisplayHeight-ignore)
替换为
CGRectMake(0,valueStr.floatValue,isnan(self.bounds.size.width)?0:self.bounds.size.width,_maxinumDisplayHeight-ignore)
/p>只是一个注释而已。。。我认为如果您倾听
frame
的更改,并根据更改计算内容大小,而不是相反,那么您的解决方案会更加稳定。