小编Mat*_*att的帖子

具有可变单元大小的UICollectionView

我正在为UICollectionView中的单元格大小努力.在android中,您可以轻松地"包装"单元格的大小.就像在iOS中一样,你有一个函数调用'GetCell',你决定它会有多大.

iOS的不同之处在于,在"getCell"函数(UICollectionViewController)中,您似乎无法选择单元格(或内容视图)的大小.如果我改变大小,它将忽略它并且无论如何使用CollectionView的一般'ItemSize'(对于所有单元格都是相同的).

这有时会导致视图不是很漂亮.例如,如果我有一个包含图像的水平列表,我希望图像之间的距离相同,如果一个图像是200x200而另一个图像是200x200则是独立的.因此,细胞大小也应该不同.

可以为不同的单元定义不同的大小.您可以使用Collectionview委托和GetSizeForItem(= ObjC中的sizeForItemAtIndexPath)函数.问题是,这个函数在实际的GetCell函数之前调用.

所以,如果我有一个更复杂的Cell,例如一些标签.在我的"GetCell"函数中,我构建了这个Cell,最后,当返回Cell时,我知道应该是哪个大小.但是,在GetSizeForItem函数中,该信息尚不可用,因为Cell仍为"null".

我能做到的唯一方法是在'GetSizeForItem'调用时实际构建单元格的UIView(所以我可以请求大小).但这似乎不是一个好设计,因为我在'GetCell'之前构建了UIView,我将再次构建它.

我有什么东西可以俯瞰吗?

问候,马特

xamarin.ios ios ios6 uicollectionview uicollectionviewcell

5
推荐指数
1
解决办法
6436
查看次数

如何筹集/解雇自己的赛事?(像UIButton)

我发现了很多关于如何对事件(或委托)做出反应的资源.例如:

Control.ValueChanged += (sender, e) =>
        {
            //do something
        };
Run Code Online (Sandbox Code Playgroud)

但是,我没有找到如何创建自己的事件?基本上我有一个需要"触发"事件的类,并且在创建该对象的类中,您可以对此事件做出反应.

任何的想法?

如果我会用Delegate代替它,我应该怎么做(创建我自己的可以由另一个类实现的Delegate对象)?

谢谢!

xamarin.ios

4
推荐指数
1
解决办法
2485
查看次数

UILabel中的单字幕下划线文本(移植ObjC代码)

我想强调UILabel中的文字.我找到了以下ObjC代码:

NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @1}
myLabel.attributedText = [[NSAttributedString alloc] initWithString:@"Test string" 
                                                     attributes:underlineAttribute];
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其移植到C#,但它无法正常工作.我正在尝试以下方法:

var keys = new object[] { "NSUnderlineStyleAttributeName" };
var objects = new object[] { 1 };
NSDictionary underlineAttribute = NSDictionary.FromObjectsAndKeys(objects, keys);
label.AttributedText = new NSAttributedString(@"Test",underlineAttribute);
Run Code Online (Sandbox Code Playgroud)

而不是1,我也尝试了"1"和NSUnderlineStyle.Single,但没有任何工作

有任何想法吗?

谢谢

nsattributedstring uilabel xamarin.ios ios

4
推荐指数
1
解决办法
4050
查看次数

Monotouch - 在网络状态发生变化时收到通知

我熟悉"可达性"类来检查是否存在互联网连接:https: //github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs

我现在想知道在网络状态发生变化时是否有任何方法可以获得通知?假设在没有互联网的情况下加载我的收藏品.图像不会被加载.如果iPad突然再次连接互联网,我想再次触发下载.

在reachability类中,我看到以下代码:

public static event EventHandler ReachabilityChanged;

    static void OnChange (NetworkReachabilityFlags flags)
    {
        var h = ReachabilityChanged;
        if (h != null)
            h (null, EventArgs.Empty);
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果我在"OnChange"方法中设置断点,则在关闭Wifi时不会调用它.

有任何想法吗?

问候,马特

xamarin.ios xamarin

3
推荐指数
1
解决办法
3251
查看次数

使用UITapGestureRecognizer的UIView上的UITableView(单元格选择不起作用)

我在UIView上使用UITableView时有一些问题,它有一个UITapGestureRecognizer.如果我单击UITableViewCell,背景不会更改为所选的背景(因为没有接收到触摸).

我假设如果你将一个子视图添加到父视图中,子视图将能够处理触摸并且一切仍然有效.但是,这不是cas.如果我点击UITableviewCell,则此父视图将处理该点击,并且不会选择该单元格.

我已经尝试将"UITapGestureRecognizer"子类化为忽略来自UITableViewCell的触摸事件:(单触引代码)

public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
        {
            if (touch.View.GetType () == typeof(UITableViewCell))
                return false;
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

由于我单击一个单元格,它无法正常工作,"touch.View.GetType()"返回"UIView"并被忽略.

任何想法是如何让我的tableview使用UITapGestureRecognizer使用UIView?

如果我从父视图中删除"UITapGestureRecognizer",则表视图正常.

谢谢马特

uitableview uiview xamarin.ios ios

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