WMDragView icon indicating copy to clipboard operation
WMDragView copied to clipboard

建议增加一个FreeRect的set重写。

Open ghost opened this issue 5 years ago • 3 comments

因为有时候涉及到freeRect的临时变动,如果当前view在freeRect外,也不能会到freeRect内。

ghost avatar Mar 22 '19 03:03 ghost

` -(void)setFreeRect:(CGRect)freeRect { _freeRect = freeRect;

[self keepBounds];

} `

我的意思大概就是这样,卤煮你看如何。

ghost avatar Mar 22 '19 03:03 ghost

freeRect 相关的还有一个问题

-(void)layoutSubviews{
    [super layoutSubviews];
    if (self.freeRect.origin.x!=0||self.freeRect.origin.y!=0||self.freeRect.size.height!=0||self.freeRect.size.width!=0) {
        //设置了freeRect--活动范围
    }else{
        //没有设置freeRect--活动范围,则设置默认的活动范围为父视图的frame
        self.freeRect = (CGRect){CGPointZero,self.superview.bounds.size};
    }
    ...
}

如果一开始 freeRect 没设值,这里会把它变成 superview 的区域,但是如果 superview 的大小在之后发生变化,freeRect 就不会修正成新的值了

sherlockyao avatar Apr 25 '19 07:04 sherlockyao

freeRect 相关的还有一个问题

-(void)layoutSubviews{
    [super layoutSubviews];
    if (self.freeRect.origin.x!=0||self.freeRect.origin.y!=0||self.freeRect.size.height!=0||self.freeRect.size.width!=0) {
        //设置了freeRect--活动范围
    }else{
        //没有设置freeRect--活动范围,则设置默认的活动范围为父视图的frame
        self.freeRect = (CGRect){CGPointZero,self.superview.bounds.size};
    }
    ...
}

如果一开始 freeRect 没设值,这里会把它变成 superview 的区域,但是如果 superview 的大小在之后发生变化,freeRect 就不会修正成新的值了

@zhengwenming 确实会存在这个问题

BeingCode avatar Nov 24 '19 13:11 BeingCode

已经解决。请更新最新的代码。

zhengwenming avatar Dec 07 '22 10:12 zhengwenming