相关疑难解决方法(0)

Animate intrinsicContentSize更改

我有一个UIView子类绘制一个半径变化的圆(具有漂亮的弹性动画).视图决定了圆的大小.

我希望这个UIView子类更改其帧大小以匹配圆半径的动画更改,并且我希望这些更改可以修改连接到视图的任何NSLayoutConstraints(以便限制到圆的边缘的视图将移动为圈调整大小).

我理解半径更改时实现-(CGSize)intrinsicContentSize和调用invalidateIntrinsicContentSize将告诉约束更新,但我无法弄清楚如何动画更改intrinsicContentSize.

invalidateIntrinsicContentSize从[UIView animateWith ...块]中调用只是立即更新布局.

这是否可能,是否有解决方法/更好的方法?

cocoa-touch uiview nslayoutconstraint

48
推荐指数
2
解决办法
1万
查看次数

在iOS 8中动态调整inputAccessoryView的大小

基本上我试图在inputAccessoryView属性中创建一个调整大小的UITextView.

我有一个viewController,方法canBecomeFirstResponder返回true,一个视图我通过自定义类(从XIB获取)实例化.在这个视图中是一个UITextView.

我尝试从该类的内部调整完整的inputAccessoryView.我尝试了几个方面:直接设置框架,尝试使用高度约束.它似乎只调整了一半:

这基本上就是我想要的(有或没有自动布局,但在iOS 7/8 +中工作):

class MessageInputAccessory: UIView, UITextViewDelegate
{
    @IBOutlet weak var textView: UITextView!

    func textViewDidChange(textView: UITextView)
    {
        var contentSize = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, CGFloat.max))

        self.frame.size.height = contentSize.height + 20

        self.textView.reloadInputViews()
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现这篇文章:在iOS 8中更改inputAccessoryView的框架.声明正在创建自动创建的约束.问题是,它不会为我创造约束.禁止或启用autolayout(也通过setTranslatesAutoresizingMaskIntoConstraints()).

objective-c ios inputaccessoryview swift

11
推荐指数
1
解决办法
4795
查看次数