gpt4 book ai didi

objective-c - 子类不继承其功能

转载 作者:行者123 更新时间:2023-12-02 11:09:13 24 4
gpt4 key购买 nike

我正在尝试创建UICollectionViewLayout的子类,但是我无法调用它的原始功能,例如itemSize,但出现错误提示

Property 'itemSize' not found on object 'SubClass *'



我想念什么?

我的代码如下所示。

。H
#import <UIKit/UIKit.h>


@interface SubClass : UICollectionViewLayout

@end

.m
#import "SubClass.h"

@implementation SubClass

- (NSArray *) layoutAttributesForElementsInRect:(CGRect)rect {
NSArray *answer = [self layoutAttributesForElementsInRect:rect];

for(int i = 1; i < [answer count]; ++i) {
UICollectionViewLayoutAttributes *currentLayoutAttributes = answer[i];
UICollectionViewLayoutAttributes *prevLayoutAttributes = answer[i - 1];
CGFloat maximumSpacing = 20.0f;
CGFloat origin = CGRectGetMaxX(prevLayoutAttributes.frame);
if(origin + maximumSpacing + currentLayoutAttributes.frame.size.width < self.collectionViewContentSize.width) {
CGRect frame = currentLayoutAttributes.frame;
frame.origin.x = origin + maximumSpacing;
currentLayoutAttributes.frame = frame;
}
}
return answer;
}

@end

最佳答案

您是从错误的类继承的。 itemSize属性是UICollectionViewFlowLayout的一部分,而不是UICollectionViewLayout

另外,您可能想调用[super layoutAttributesForElementsInRect:rect]。将该消息发送到self会由于无限制的递归而导致堆栈溢出。

关于objective-c - 子类不继承其功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com